@elementor/editor-components 3.35.0-493 → 3.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -37,13 +37,13 @@ module.exports = __toCommonJS(index_exports);
37
37
  // src/init.ts
38
38
  var import_editor = require("@elementor/editor");
39
39
  var import_editor_canvas8 = require("@elementor/editor-canvas");
40
- var import_editor_documents13 = require("@elementor/editor-documents");
40
+ var import_editor_documents14 = require("@elementor/editor-documents");
41
41
  var import_editor_editing_panel8 = require("@elementor/editor-editing-panel");
42
42
  var import_editor_elements_panel = require("@elementor/editor-elements-panel");
43
43
  var import_editor_panels5 = require("@elementor/editor-panels");
44
44
  var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
45
- var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
46
- var import_store80 = require("@elementor/store");
45
+ var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
46
+ var import_store82 = require("@elementor/store");
47
47
  var import_i18n31 = require("@wordpress/i18n");
48
48
 
49
49
  // src/component-instance-transformer.ts
@@ -313,10 +313,6 @@ var getComponentDocumentData = async (id2) => {
313
313
  return null;
314
314
  }
315
315
  };
316
- var invalidateComponentDocumentData = (id2) => {
317
- const documentManager = (0, import_editor_documents.getV1DocumentsManager)();
318
- documentManager.invalidateCache(id2);
319
- };
320
316
 
321
317
  // src/component-instance-transformer.ts
322
318
  var componentInstanceTransformer = (0, import_editor_canvas.createTransformer)(
@@ -388,7 +384,7 @@ var componentOverrideTransformer = (0, import_editor_canvas3.createTransformer)(
388
384
  // src/components/component-panel-header/component-panel-header.tsx
389
385
  var React10 = __toESM(require("react"));
390
386
  var import_editor_current_user = require("@elementor/editor-current-user");
391
- var import_editor_documents6 = require("@elementor/editor-documents");
387
+ var import_editor_documents7 = require("@elementor/editor-documents");
392
388
  var import_editor_panels3 = require("@elementor/editor-panels");
393
389
  var import_editor_ui6 = require("@elementor/editor-ui");
394
390
  var import_icons7 = require("@elementor/icons");
@@ -398,12 +394,12 @@ var import_i18n13 = require("@wordpress/i18n");
398
394
 
399
395
  // src/hooks/use-navigate-back.ts
400
396
  var import_react = require("react");
401
- var import_editor_documents2 = require("@elementor/editor-documents");
397
+ var import_editor_documents3 = require("@elementor/editor-documents");
402
398
  var import_store5 = require("@elementor/store");
403
399
 
404
400
  // src/utils/switch-to-component.ts
401
+ var import_editor_documents2 = require("@elementor/editor-documents");
405
402
  var import_editor_elements = require("@elementor/editor-elements");
406
- var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
407
403
 
408
404
  // src/utils/expand-navigator.ts
409
405
  var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
@@ -414,8 +410,8 @@ async function expandNavigator() {
414
410
  // src/utils/switch-to-component.ts
415
411
  async function switchToComponent(componentId, componentInstanceId, element) {
416
412
  const selector = getSelector(element, componentInstanceId);
417
- await (0, import_editor_v1_adapters3.__privateRunCommand)("editor/documents/switch", {
418
- id: componentId,
413
+ (0, import_editor_documents2.invalidateDocumentData)(componentId);
414
+ await (0, import_editor_documents2.switchToDocument)(componentId, {
419
415
  selector,
420
416
  mode: "autosave",
421
417
  setAsInitial: false,
@@ -460,7 +456,7 @@ function buildUniqueSelector(element) {
460
456
  // src/hooks/use-navigate-back.ts
461
457
  function useNavigateBack() {
462
458
  const path = (0, import_store5.__useSelector)(selectPath);
463
- const documentsManager = (0, import_editor_documents2.getV1DocumentsManager)();
459
+ const documentsManager = (0, import_editor_documents3.getV1DocumentsManager)();
464
460
  return (0, import_react.useCallback)(() => {
465
461
  const { componentId: prevComponentId, instanceId: prevComponentInstanceId } = path.at(-2) ?? {};
466
462
  if (prevComponentId && prevComponentInstanceId) {
@@ -519,7 +515,7 @@ var import_i18n11 = require("@wordpress/i18n");
519
515
  // src/components/component-properties-panel/component-properties-panel-content.tsx
520
516
  var React7 = __toESM(require("react"));
521
517
  var import_react5 = require("react");
522
- var import_editor_documents5 = require("@elementor/editor-documents");
518
+ var import_editor_documents6 = require("@elementor/editor-documents");
523
519
  var import_editor_panels = require("@elementor/editor-panels");
524
520
  var import_icons5 = require("@elementor/icons");
525
521
  var import_ui7 = require("@elementor/ui");
@@ -747,7 +743,7 @@ var import_editor_elements2 = require("@elementor/editor-elements");
747
743
 
748
744
  // src/create-component-type.ts
749
745
  var import_editor_canvas4 = require("@elementor/editor-canvas");
750
- var import_editor_documents3 = require("@elementor/editor-documents");
746
+ var import_editor_documents4 = require("@elementor/editor-documents");
751
747
  var import_store13 = require("@elementor/store");
752
748
  var import_i18n2 = require("@wordpress/i18n");
753
749
  var COMPONENT_WIDGET_TYPE = "e-component";
@@ -788,7 +784,7 @@ function createComponentView(options) {
788
784
  eventsManagerConfig = legacyWindow.elementorCommon.eventsManager.config;
789
785
  #componentRenderContext;
790
786
  isComponentCurrentlyEdited() {
791
- const currentDocument = (0, import_editor_documents3.getCurrentDocument)();
787
+ const currentDocument = (0, import_editor_documents4.getCurrentDocument)();
792
788
  return currentDocument?.id === this.getComponentId();
793
789
  }
794
790
  getRenderContext() {
@@ -1848,7 +1844,7 @@ function PropertiesGroup({
1848
1844
 
1849
1845
  // src/components/component-properties-panel/use-current-editable-item.ts
1850
1846
  var import_react4 = require("react");
1851
- var import_editor_documents4 = require("@elementor/editor-documents");
1847
+ var import_editor_documents5 = require("@elementor/editor-documents");
1852
1848
  var import_editor_ui4 = require("@elementor/editor-ui");
1853
1849
  var import_i18n9 = require("@wordpress/i18n");
1854
1850
 
@@ -1916,7 +1912,7 @@ function useCurrentEditableItem() {
1916
1912
  groupId: editingGroupId,
1917
1913
  label: newLabel
1918
1914
  });
1919
- (0, import_editor_documents4.setDocumentModifiedStatus)(true);
1915
+ (0, import_editor_documents5.setDocumentModifiedStatus)(true);
1920
1916
  };
1921
1917
  const {
1922
1918
  ref: editableRef,
@@ -1993,21 +1989,21 @@ function ComponentPropertiesPanelContent({ onClose }) {
1993
1989
  label: newLabel,
1994
1990
  source: "user"
1995
1991
  });
1996
- (0, import_editor_documents5.setDocumentModifiedStatus)(true);
1992
+ (0, import_editor_documents6.setDocumentModifiedStatus)(true);
1997
1993
  setIsAddingGroup(false);
1998
1994
  groupLabelEditable.setEditingGroupId(newGroupId);
1999
1995
  };
2000
1996
  const handleGroupsReorder = (newOrder) => {
2001
1997
  reorderOverridableGroups({ componentId: currentComponentId, newOrder });
2002
- (0, import_editor_documents5.setDocumentModifiedStatus)(true);
1998
+ (0, import_editor_documents6.setDocumentModifiedStatus)(true);
2003
1999
  };
2004
2000
  const handlePropsReorder = (groupId, newPropsOrder) => {
2005
2001
  reorderGroupProps({ componentId: currentComponentId, groupId, newPropsOrder });
2006
- (0, import_editor_documents5.setDocumentModifiedStatus)(true);
2002
+ (0, import_editor_documents6.setDocumentModifiedStatus)(true);
2007
2003
  };
2008
2004
  const handlePropertyDelete = (propKey) => {
2009
2005
  deleteOverridableProp({ componentId: currentComponentId, propKey, source: "user" });
2010
- (0, import_editor_documents5.setDocumentModifiedStatus)(true);
2006
+ (0, import_editor_documents6.setDocumentModifiedStatus)(true);
2011
2007
  };
2012
2008
  const handlePropertyUpdate = (overrideKey, data) => {
2013
2009
  updateOverridablePropParams({
@@ -2016,11 +2012,11 @@ function ComponentPropertiesPanelContent({ onClose }) {
2016
2012
  label: data.label,
2017
2013
  groupId: data.group
2018
2014
  });
2019
- (0, import_editor_documents5.setDocumentModifiedStatus)(true);
2015
+ (0, import_editor_documents6.setDocumentModifiedStatus)(true);
2020
2016
  };
2021
2017
  const handleGroupDelete = (groupId) => {
2022
2018
  deleteOverridableGroup({ componentId: currentComponentId, groupId });
2023
- (0, import_editor_documents5.setDocumentModifiedStatus)(true);
2019
+ (0, import_editor_documents6.setDocumentModifiedStatus)(true);
2024
2020
  };
2025
2021
  return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(import_editor_panels.PanelHeader, { sx: { justifyContent: "start", pl: 1.5, pr: 1, py: 1 } }, /* @__PURE__ */ React7.createElement(import_ui7.Stack, { direction: "row", alignItems: "center", gap: 0.5, flexGrow: 1 }, /* @__PURE__ */ React7.createElement(import_icons5.ComponentPropListIcon, { fontSize: "tiny" }), /* @__PURE__ */ React7.createElement(import_editor_panels.PanelHeaderTitle, { variant: "subtitle2" }, (0, import_i18n10.__)("Component properties", "elementor"))), !showEmptyState && /* @__PURE__ */ React7.createElement(import_ui7.Tooltip, { title: (0, import_i18n10.__)("Add new group", "elementor") }, /* @__PURE__ */ React7.createElement(
2026
2022
  import_ui7.IconButton,
@@ -2203,7 +2199,7 @@ function getComponentName() {
2203
2199
  if (instanceTitle) {
2204
2200
  return instanceTitle;
2205
2201
  }
2206
- const documentsManager = (0, import_editor_documents6.getV1DocumentsManager)();
2202
+ const documentsManager = (0, import_editor_documents7.getV1DocumentsManager)();
2207
2203
  const currentDocument = documentsManager.getCurrent();
2208
2204
  return currentDocument?.container?.settings?.get("post_title") ?? "";
2209
2205
  }
@@ -2298,13 +2294,13 @@ var useComponentsPermissions = () => {
2298
2294
  };
2299
2295
 
2300
2296
  // src/store/actions/rename-component.ts
2301
- var import_editor_documents7 = require("@elementor/editor-documents");
2297
+ var import_editor_documents8 = require("@elementor/editor-documents");
2302
2298
  var import_editor_elements5 = require("@elementor/editor-elements");
2303
2299
  var import_store33 = require("@elementor/store");
2304
2300
  var TITLE_EXTERNAL_CHANGE_COMMAND = "title_external_change";
2305
2301
  var renameComponent = (componentUid, newName) => {
2306
2302
  (0, import_store33.__dispatch)(slice.actions.rename({ componentUid, name: newName }));
2307
- (0, import_editor_documents7.setDocumentModifiedStatus)(true);
2303
+ (0, import_editor_documents8.setDocumentModifiedStatus)(true);
2308
2304
  refreshComponentInstanceTitles(componentUid);
2309
2305
  };
2310
2306
  function refreshComponentInstanceTitles(componentUid) {
@@ -2318,7 +2314,7 @@ function refreshComponentInstanceTitles(componentUid) {
2318
2314
  });
2319
2315
  }
2320
2316
  function getDocumentContainer() {
2321
- const documentsManager = (0, import_editor_documents7.getV1DocumentsManager)();
2317
+ const documentsManager = (0, import_editor_documents8.getV1DocumentsManager)();
2322
2318
  return documentsManager?.getCurrent()?.container;
2323
2319
  }
2324
2320
  function findComponentInstancesByUid(documentContainer, componentUid) {
@@ -2342,7 +2338,7 @@ var import_ui12 = require("@elementor/ui");
2342
2338
  var import_i18n18 = require("@wordpress/i18n");
2343
2339
 
2344
2340
  // src/store/actions/archive-component.ts
2345
- var import_editor_documents8 = require("@elementor/editor-documents");
2341
+ var import_editor_documents9 = require("@elementor/editor-documents");
2346
2342
  var import_editor_notifications = require("@elementor/editor-notifications");
2347
2343
  var import_store35 = require("@elementor/store");
2348
2344
  var import_i18n15 = require("@wordpress/i18n");
@@ -2354,12 +2350,12 @@ var successNotification = (componentId, componentName) => ({
2354
2350
  });
2355
2351
  var archiveComponent = (componentId, componentName) => {
2356
2352
  (0, import_store35.__dispatch)(slice.actions.archive(componentId));
2357
- (0, import_editor_documents8.setDocumentModifiedStatus)(true);
2353
+ (0, import_editor_documents9.setDocumentModifiedStatus)(true);
2358
2354
  (0, import_editor_notifications.notify)(successNotification(componentId, componentName));
2359
2355
  };
2360
2356
 
2361
2357
  // src/store/actions/load-components-assets.ts
2362
- var import_editor_documents9 = require("@elementor/editor-documents");
2358
+ var import_editor_documents10 = require("@elementor/editor-documents");
2363
2359
 
2364
2360
  // src/utils/get-component-documents.ts
2365
2361
  async function getComponentDocuments(elements, cache = /* @__PURE__ */ new Map()) {
@@ -2469,9 +2465,9 @@ async function loadComponentsAssets(elements) {
2469
2465
  await loadComponentsOverridableProps([...documents.keys()]);
2470
2466
  }
2471
2467
  function updateDocumentState(documents) {
2472
- const isDrafted = [...documents.values()].some(import_editor_documents9.isDocumentDirty);
2468
+ const isDrafted = [...documents.values()].some(import_editor_documents10.isDocumentDirty);
2473
2469
  if (isDrafted) {
2474
- (0, import_editor_documents9.setDocumentModifiedStatus)(true);
2470
+ (0, import_editor_documents10.setDocumentModifiedStatus)(true);
2475
2471
  }
2476
2472
  }
2477
2473
 
@@ -2999,7 +2995,7 @@ var import_i18n23 = require("@wordpress/i18n");
2999
2995
  var import_editor_canvas6 = require("@elementor/editor-canvas");
3000
2996
  var import_editor_elements9 = require("@elementor/editor-elements");
3001
2997
  var import_editor_notifications2 = require("@elementor/editor-notifications");
3002
- var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
2998
+ var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
3003
2999
  var import_i18n21 = require("@wordpress/i18n");
3004
3000
 
3005
3001
  // src/utils/is-editing-component.ts
@@ -3019,15 +3015,15 @@ var NON_ATOMIC_ELEMENT_ALERT = {
3019
3015
  id: "non-atomic-element-blocked"
3020
3016
  };
3021
3017
  function initNonAtomicNestingPrevention() {
3022
- (0, import_editor_v1_adapters4.blockCommand)({
3018
+ (0, import_editor_v1_adapters3.blockCommand)({
3023
3019
  command: "document/elements/create",
3024
3020
  condition: blockNonAtomicCreate
3025
3021
  });
3026
- (0, import_editor_v1_adapters4.blockCommand)({
3022
+ (0, import_editor_v1_adapters3.blockCommand)({
3027
3023
  command: "document/elements/move",
3028
3024
  condition: blockNonAtomicMove
3029
3025
  });
3030
- (0, import_editor_v1_adapters4.blockCommand)({
3026
+ (0, import_editor_v1_adapters3.blockCommand)({
3031
3027
  command: "document/elements/paste",
3032
3028
  condition: blockNonAtomicPaste
3033
3029
  });
@@ -3115,7 +3111,7 @@ function findNonAtomicElementsInElement(element) {
3115
3111
 
3116
3112
  // src/store/actions/create-unpublished-component.ts
3117
3113
  var import_editor_elements10 = require("@elementor/editor-elements");
3118
- var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
3114
+ var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
3119
3115
  var import_store45 = require("@elementor/store");
3120
3116
  var import_utils4 = require("@elementor/utils");
3121
3117
  var import_i18n22 = require("@wordpress/i18n");
@@ -3154,7 +3150,7 @@ async function createUnpublishedComponent({
3154
3150
  ...eventData
3155
3151
  });
3156
3152
  try {
3157
- await (0, import_editor_v1_adapters5.__privateRunCommand)("document/save/auto");
3153
+ await (0, import_editor_v1_adapters4.__privateRunCommand)("document/save/auto");
3158
3154
  } catch (error) {
3159
3155
  restoreOriginalElement(originalElement, componentInstance.id);
3160
3156
  (0, import_store45.__dispatch)(slice.actions.removeUnpublished(generatedUid));
@@ -3440,13 +3436,13 @@ var Form2 = ({
3440
3436
  // src/components/edit-component/edit-component.tsx
3441
3437
  var React21 = __toESM(require("react"));
3442
3438
  var import_react13 = require("react");
3443
- var import_editor_documents11 = require("@elementor/editor-documents");
3444
- var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
3439
+ var import_editor_documents12 = require("@elementor/editor-documents");
3440
+ var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
3445
3441
  var import_store51 = require("@elementor/store");
3446
3442
  var import_utils6 = require("@elementor/utils");
3447
3443
 
3448
3444
  // src/store/actions/update-current-component.ts
3449
- var import_editor_documents10 = require("@elementor/editor-documents");
3445
+ var import_editor_documents11 = require("@elementor/editor-documents");
3450
3446
  var import_store49 = require("@elementor/store");
3451
3447
  function updateCurrentComponent({
3452
3448
  path,
@@ -3467,9 +3463,9 @@ var import_react_dom = require("react-dom");
3467
3463
  var import_i18n24 = require("@wordpress/i18n");
3468
3464
 
3469
3465
  // src/hooks/use-canvas-document.ts
3470
- var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
3466
+ var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
3471
3467
  function useCanvasDocument() {
3472
- return (0, import_editor_v1_adapters6.__privateUseListenTo)((0, import_editor_v1_adapters6.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_v1_adapters6.getCanvasIframeDocument)());
3468
+ return (0, import_editor_v1_adapters5.__privateUseListenTo)((0, import_editor_v1_adapters5.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_v1_adapters5.getCanvasIframeDocument)());
3473
3469
  }
3474
3470
 
3475
3471
  // src/hooks/use-element-rect.ts
@@ -3646,11 +3642,11 @@ function EditComponent() {
3646
3642
  return /* @__PURE__ */ React21.createElement(ComponentModal, { topLevelElementDom, onClose });
3647
3643
  }
3648
3644
  function useHandleDocumentSwitches() {
3649
- const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
3645
+ const documentsManager = (0, import_editor_documents12.getV1DocumentsManager)();
3650
3646
  const currentComponentId = useCurrentComponentId();
3651
3647
  const path = (0, import_store51.__useSelector)(selectPath);
3652
3648
  (0, import_react13.useEffect)(() => {
3653
- return (0, import_editor_v1_adapters7.__privateListenTo)((0, import_editor_v1_adapters7.commandEndEvent)("editor/documents/open"), () => {
3649
+ return (0, import_editor_v1_adapters6.__privateListenTo)((0, import_editor_v1_adapters6.commandEndEvent)("editor/documents/open"), () => {
3654
3650
  const nextDocument = documentsManager.getCurrent();
3655
3651
  if (nextDocument.id === currentComponentId) {
3656
3652
  return;
@@ -3690,7 +3686,7 @@ function getInstanceTitle(instanceId, path) {
3690
3686
  if (!instanceId) {
3691
3687
  return void 0;
3692
3688
  }
3693
- const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
3689
+ const documentsManager = (0, import_editor_documents12.getV1DocumentsManager)();
3694
3690
  const parentDocId = path.at(-1)?.componentId ?? documentsManager.getInitialId();
3695
3691
  const parentDoc = documentsManager.get(parentDocId);
3696
3692
  const parentContainer = parentDoc?.container;
@@ -3725,7 +3721,7 @@ function getComponentDOMElements(id2) {
3725
3721
  if (!id2) {
3726
3722
  return { componentContainerDomElement: null, topLevelElementDom: null };
3727
3723
  }
3728
- const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
3724
+ const documentsManager = (0, import_editor_documents12.getV1DocumentsManager)();
3729
3725
  const currentComponent = documentsManager.get(id2);
3730
3726
  const componentContainer = currentComponent?.container;
3731
3727
  const componentContainerDomElement = componentContainer?.view?.el?.children?.[0] ?? null;
@@ -3933,12 +3929,10 @@ var getPropTypeForComponentOverride = (overridableProp) => {
3933
3929
  if (overridableProp.originPropFields) {
3934
3930
  return getPropType(overridableProp.originPropFields);
3935
3931
  }
3936
- const { elType, widgetType, propKey, elementId } = overridableProp;
3932
+ const { widgetType, propKey } = overridableProp;
3937
3933
  return getPropType({
3938
- elType,
3939
3934
  widgetType,
3940
- propKey,
3941
- elementId
3935
+ propKey
3942
3936
  });
3943
3937
  };
3944
3938
  function getPropType({ widgetType, propKey }) {
@@ -3961,6 +3955,92 @@ var OverrideControlInnerElementNotFoundError = (0, import_utils7.createError)({
3961
3955
  message: `Component inner element not found for override control. The element may have been deleted without updating the overridable props, or the component has not finished rendering yet.`
3962
3956
  });
3963
3957
 
3958
+ // src/components/instance-editing-panel/use-resolved-origin-value.tsx
3959
+ var import_store55 = require("@elementor/store");
3960
+ function useResolvedOriginValue(override, overridableProp) {
3961
+ const components = (0, import_store55.__useSelector)(selectData);
3962
+ return resolveOriginValue(components, override, overridableProp);
3963
+ }
3964
+ function resolveOriginValue(components, matchingOverride, overridableProp) {
3965
+ const { originValue: fallbackOriginValue, originPropFields } = overridableProp;
3966
+ if (hasValue(fallbackOriginValue)) {
3967
+ return fallbackOriginValue;
3968
+ }
3969
+ if (matchingOverride) {
3970
+ const result = getOriginFromOverride(components, matchingOverride);
3971
+ if (hasValue(result)) {
3972
+ return result;
3973
+ }
3974
+ }
3975
+ const { elementId, propKey } = originPropFields ?? {};
3976
+ if (elementId && propKey) {
3977
+ return findOriginValueByElementId(components, elementId, propKey);
3978
+ }
3979
+ return null;
3980
+ }
3981
+ function getOriginFromOverride(components, override) {
3982
+ const overridableValue = componentOverridablePropTypeUtil.extract(override);
3983
+ const innerOverride = overridableValue ? componentInstanceOverridePropTypeUtil.extract(overridableValue.origin_value) : componentInstanceOverridePropTypeUtil.extract(override);
3984
+ if (!innerOverride) {
3985
+ return null;
3986
+ }
3987
+ const { schema_source: schemaSource, override_key: overrideKey, override_value: overrideValue } = innerOverride;
3988
+ const componentId = schemaSource?.id;
3989
+ if (!componentId || !overrideKey) {
3990
+ return null;
3991
+ }
3992
+ const prop = getOverridableProp(components, componentId, overrideKey);
3993
+ if (hasValue(prop?.originValue)) {
3994
+ return prop.originValue;
3995
+ }
3996
+ if (prop?.originPropFields?.elementId) {
3997
+ const targetPropKey = prop.originPropFields.propKey ?? prop.propKey;
3998
+ const result = findOriginValueByElementId(components, prop.originPropFields.elementId, targetPropKey);
3999
+ if (hasValue(result)) {
4000
+ return result;
4001
+ }
4002
+ }
4003
+ const nestedOverridable = componentOverridablePropTypeUtil.extract(overrideValue);
4004
+ if (nestedOverridable) {
4005
+ return getOriginFromOverride(components, componentOverridablePropTypeUtil.create(nestedOverridable));
4006
+ }
4007
+ return null;
4008
+ }
4009
+ function findOriginValueByElementId(components, targetElementId, targetPropKey, visited = /* @__PURE__ */ new Set()) {
4010
+ for (const component of components) {
4011
+ if (visited.has(component.id)) {
4012
+ continue;
4013
+ }
4014
+ visited.add(component.id);
4015
+ const matchingProp = Object.values(component.overridableProps?.props ?? {}).find(
4016
+ ({ elementId, propKey }) => elementId === targetElementId && propKey === targetPropKey
4017
+ );
4018
+ if (!matchingProp) {
4019
+ continue;
4020
+ }
4021
+ if (hasValue(matchingProp.originValue)) {
4022
+ return matchingProp.originValue;
4023
+ }
4024
+ if (matchingProp.originPropFields?.elementId) {
4025
+ const innerPropKey = matchingProp.originPropFields.propKey ?? targetPropKey;
4026
+ return findOriginValueByElementId(
4027
+ components,
4028
+ matchingProp.originPropFields.elementId,
4029
+ innerPropKey,
4030
+ visited
4031
+ );
4032
+ }
4033
+ }
4034
+ return null;
4035
+ }
4036
+ function hasValue(value) {
4037
+ return value !== null && value !== void 0;
4038
+ }
4039
+ function getOverridableProp(components, componentId, overrideKey) {
4040
+ const component = components.find(({ id: id2 }) => id2 === componentId);
4041
+ return component?.overridableProps?.props?.[overrideKey];
4042
+ }
4043
+
3964
4044
  // src/components/instance-editing-panel/override-prop-control.tsx
3965
4045
  function OverridePropControl({ overridableProp, overrides }) {
3966
4046
  return /* @__PURE__ */ React26.createElement(import_editor_editing_panel3.SettingsField, { bind: "component_instance", propDisplayName: overridableProp.label }, /* @__PURE__ */ React26.createElement(OverrideControl, { overridableProp, overrides }));
@@ -3973,26 +4053,27 @@ function OverrideControl({ overridableProp, overrides }) {
3973
4053
  overridableProp?.originPropFields?.widgetType ?? overridableProp.widgetType
3974
4054
  );
3975
4055
  const controlReplacements = (0, import_editor_editing_panel3.getControlReplacements)();
4056
+ const matchingOverride = getMatchingOverride(overrides, overridableProp.overrideKey);
4057
+ const recursiveOriginValue = useResolvedOriginValue(matchingOverride, overridableProp);
3976
4058
  const propType = getPropTypeForComponentOverride(overridableProp);
3977
4059
  if (!propType) {
3978
4060
  return null;
3979
4061
  }
3980
- const propTypeSchema = (0, import_editor_editing_panel3.createTopLevelObjectType)({
3981
- schema: {
3982
- [overridableProp.overrideKey]: propType
3983
- }
3984
- });
3985
4062
  const componentInstanceId = instanceValue.component_id?.value;
3986
4063
  if (!componentInstanceId) {
3987
4064
  throw new Error("Component ID is required");
3988
4065
  }
3989
- const matchingOverride = getMatchingOverride(overrides, overridableProp.overrideKey);
3990
- const propValue = matchingOverride ? resolveOverridePropValue(matchingOverride) : overridableProp.originValue;
4066
+ const resolvedOverrideValue = matchingOverride ? resolveOverridePropValue(matchingOverride) : null;
4067
+ const propValue = resolvedOverrideValue ?? recursiveOriginValue ?? overridableProp.originValue;
3991
4068
  const value = {
3992
4069
  [overridableProp.overrideKey]: propValue
3993
4070
  };
3994
4071
  const setValue = (newValue) => {
3995
- const newPropValue = newValue[overridableProp.overrideKey];
4072
+ const newPropValue = getTempNewValueForDynamicProp(
4073
+ propType,
4074
+ propValue,
4075
+ newValue[overridableProp.overrideKey]
4076
+ );
3996
4077
  const newOverrideValue = createOverrideValue({
3997
4078
  matchingOverride,
3998
4079
  overrideKey: overridableProp.overrideKey,
@@ -4034,6 +4115,11 @@ function OverrideControl({ overridableProp, overrides }) {
4034
4115
  if (!elementType) {
4035
4116
  return null;
4036
4117
  }
4118
+ const propTypeSchema = (0, import_editor_editing_panel3.createTopLevelObjectType)({
4119
+ schema: {
4120
+ [overridableProp.overrideKey]: propType
4121
+ }
4122
+ });
4037
4123
  return /* @__PURE__ */ React26.createElement(
4038
4124
  OverridablePropProvider,
4039
4125
  {
@@ -4054,8 +4140,15 @@ function OverrideControl({ overridableProp, overrides }) {
4054
4140
  )))
4055
4141
  );
4056
4142
  }
4143
+ function getTempNewValueForDynamicProp(propType, propValue, newPropValue) {
4144
+ const isRemovingOverride = newPropValue === null;
4145
+ if (isRemovingOverride && (0, import_editor_editing_panel3.isDynamicPropValue)(propValue)) {
4146
+ return propType.default ?? null;
4147
+ }
4148
+ return newPropValue;
4149
+ }
4057
4150
  function getMatchingOverride(overrides, overrideKey) {
4058
- return overrides?.find((override) => {
4151
+ const result = overrides?.find((override) => {
4059
4152
  const overridableValue = componentOverridablePropTypeUtil.extract(override);
4060
4153
  let comparedOverrideKey = null;
4061
4154
  if (overridableValue) {
@@ -4065,6 +4158,7 @@ function getMatchingOverride(overrides, overrideKey) {
4065
4158
  }
4066
4159
  return comparedOverrideKey === overrideKey;
4067
4160
  }) ?? null;
4161
+ return result;
4068
4162
  }
4069
4163
  function createOverrideValue({
4070
4164
  matchingOverride,
@@ -4191,7 +4285,7 @@ function InstanceEditingPanel() {
4191
4285
  const isNonEmptyGroup = (group) => group !== null && group.props.length > 0;
4192
4286
  const groups = overridableProps.groups.order.map((groupId) => overridableProps.groups.items[groupId] ?? null).filter(isNonEmptyGroup);
4193
4287
  const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
4194
- return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelHeader, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "row", alignItems: "center", flexGrow: 1, gap: 1, maxWidth: "100%" }, /* @__PURE__ */ React28.createElement(import_icons14.ComponentsIcon, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React28.createElement(import_editor_ui14.EllipsisWithTooltip, { title: component.name, as: import_editor_panels4.PanelHeaderTitle, sx: { flexGrow: 1 } }), canEdit && /* @__PURE__ */ React28.createElement(import_ui22.Tooltip, { title: panelTitle }, /* @__PURE__ */ React28.createElement(import_ui22.IconButton, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React28.createElement(import_icons14.PencilIcon, { fontSize: "tiny" }))))), /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelBody, null, /* @__PURE__ */ React28.createElement(import_editor_controls4.ControlAdornmentsProvider, { items: (0, import_editor_editing_panel5.getFieldIndicators)("settings") }, isEmpty ? /* @__PURE__ */ React28.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React28.createElement(React28.Fragment, { key: group.id }, /* @__PURE__ */ React28.createElement(
4288
+ return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelHeader, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "row", alignItems: "center", flexGrow: 1, gap: 1, maxWidth: "100%" }, /* @__PURE__ */ React28.createElement(import_icons14.ComponentsIcon, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React28.createElement(import_editor_ui14.EllipsisWithTooltip, { title: component.name, as: import_editor_panels4.PanelHeaderTitle, sx: { flexGrow: 1 } }), canEdit && /* @__PURE__ */ React28.createElement(import_ui22.Tooltip, { title: panelTitle }, /* @__PURE__ */ React28.createElement(import_ui22.IconButton, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React28.createElement(import_icons14.PencilIcon, { fontSize: "tiny" }))))), /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelBody, null, /* @__PURE__ */ React28.createElement(import_editor_controls4.ControlAdornmentsProvider, { items: (0, import_editor_editing_panel5.getFieldIndicators)("settings") }, isEmpty ? /* @__PURE__ */ React28.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React28.createElement(React28.Fragment, { key: group.id + componentInstanceId }, /* @__PURE__ */ React28.createElement(
4195
4289
  OverridePropsGroup,
4196
4290
  {
4197
4291
  group,
@@ -4282,7 +4376,7 @@ var import_ui24 = require("@elementor/ui");
4282
4376
  var import_i18n29 = require("@wordpress/i18n");
4283
4377
 
4284
4378
  // src/store/actions/set-overridable-prop.ts
4285
- var import_store58 = require("@elementor/store");
4379
+ var import_store60 = require("@elementor/store");
4286
4380
  var import_utils8 = require("@elementor/utils");
4287
4381
  function setOverridableProp({
4288
4382
  componentId,
@@ -4297,7 +4391,7 @@ function setOverridableProp({
4297
4391
  originPropFields,
4298
4392
  source
4299
4393
  }) {
4300
- const overridableProps = selectOverridableProps((0, import_store58.__getState)(), componentId);
4394
+ const overridableProps = selectOverridableProps((0, import_store60.__getState)(), componentId);
4301
4395
  if (!overridableProps) {
4302
4396
  return;
4303
4397
  }
@@ -4334,7 +4428,7 @@ function setOverridableProp({
4334
4428
  if (isChangingGroups) {
4335
4429
  groups = removePropFromGroup(groups, existingOverridableProp.groupId, overridableProp.overrideKey);
4336
4430
  }
4337
- (0, import_store58.__dispatch)(
4431
+ (0, import_store60.__dispatch)(
4338
4432
  slice.actions.setOverridableProps({
4339
4433
  componentId,
4340
4434
  overridableProps: {
@@ -4345,7 +4439,7 @@ function setOverridableProp({
4345
4439
  );
4346
4440
  const isNewProperty = !existingOverridableProp;
4347
4441
  if (isNewProperty) {
4348
- const currentComponent = selectCurrentComponent((0, import_store58.__getState)());
4442
+ const currentComponent = selectCurrentComponent((0, import_store60.__getState)());
4349
4443
  trackComponentEvent({
4350
4444
  action: "propertyExposed",
4351
4445
  source,
@@ -4430,12 +4524,12 @@ var Indicator2 = (0, import_react16.forwardRef)(({ isOpen, isOverridable, ...pro
4430
4524
  )));
4431
4525
 
4432
4526
  // src/components/overridable-props/utils/get-overridable-prop.ts
4433
- var import_store60 = require("@elementor/store");
4434
- function getOverridableProp({
4527
+ var import_store62 = require("@elementor/store");
4528
+ function getOverridableProp2({
4435
4529
  componentId,
4436
4530
  overrideKey
4437
4531
  }) {
4438
- const overridableProps = selectOverridableProps((0, import_store60.__getState)(), componentId);
4532
+ const overridableProps = selectOverridableProps((0, import_store62.__getState)(), componentId);
4439
4533
  if (!overridableProps) {
4440
4534
  return void 0;
4441
4535
  }
@@ -4495,7 +4589,7 @@ function Content2({ componentId, overridableProps }) {
4495
4589
  }
4496
4590
  popupState.close();
4497
4591
  };
4498
- const overridableConfig = overridableValue ? getOverridableProp({ componentId, overrideKey: overridableValue.override_key }) : void 0;
4592
+ const overridableConfig = overridableValue ? getOverridableProp2({ componentId, overrideKey: overridableValue.override_key }) : void 0;
4499
4593
  return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(import_ui24.Tooltip, { placement: "top", title: (0, import_i18n29.__)("Override Property", "elementor") }, /* @__PURE__ */ React31.createElement(Indicator2, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React31.createElement(
4500
4594
  import_ui24.Popover,
4501
4595
  {
@@ -4875,10 +4969,10 @@ function initMcp() {
4875
4969
 
4876
4970
  // src/populate-store.ts
4877
4971
  var import_react17 = require("react");
4878
- var import_store63 = require("@elementor/store");
4972
+ var import_store65 = require("@elementor/store");
4879
4973
  function PopulateStore() {
4880
4974
  (0, import_react17.useEffect)(() => {
4881
- (0, import_store63.__dispatch)(loadComponents());
4975
+ (0, import_store65.__dispatch)(loadComponents());
4882
4976
  }, []);
4883
4977
  return null;
4884
4978
  }
@@ -4886,8 +4980,8 @@ function PopulateStore() {
4886
4980
  // src/prevent-circular-nesting.ts
4887
4981
  var import_editor_elements19 = require("@elementor/editor-elements");
4888
4982
  var import_editor_notifications4 = require("@elementor/editor-notifications");
4889
- var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
4890
- var import_store64 = require("@elementor/store");
4983
+ var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
4984
+ var import_store66 = require("@elementor/store");
4891
4985
  var import_i18n30 = require("@wordpress/i18n");
4892
4986
  var COMPONENT_TYPE = "e-component";
4893
4987
  var COMPONENT_CIRCULAR_NESTING_ALERT = {
@@ -4896,15 +4990,15 @@ var COMPONENT_CIRCULAR_NESTING_ALERT = {
4896
4990
  id: "circular-component-nesting-blocked"
4897
4991
  };
4898
4992
  function initCircularNestingPrevention() {
4899
- (0, import_editor_v1_adapters8.blockCommand)({
4993
+ (0, import_editor_v1_adapters7.blockCommand)({
4900
4994
  command: "document/elements/create",
4901
4995
  condition: blockCircularCreate
4902
4996
  });
4903
- (0, import_editor_v1_adapters8.blockCommand)({
4997
+ (0, import_editor_v1_adapters7.blockCommand)({
4904
4998
  command: "document/elements/move",
4905
4999
  condition: blockCircularMove
4906
5000
  });
4907
- (0, import_editor_v1_adapters8.blockCommand)({
5001
+ (0, import_editor_v1_adapters7.blockCommand)({
4908
5002
  command: "document/elements/paste",
4909
5003
  condition: blockCircularPaste
4910
5004
  });
@@ -4913,7 +5007,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
4913
5007
  if (componentIdToAdd === void 0) {
4914
5008
  return false;
4915
5009
  }
4916
- const state = (0, import_store64.__getState)();
5010
+ const state = (0, import_store66.__getState)();
4917
5011
  const currentComponentId = selectCurrentComponentId(state);
4918
5012
  const path = selectPath(state);
4919
5013
  if (currentComponentId === null) {
@@ -5011,19 +5105,19 @@ function blockCircularPaste(args) {
5011
5105
  }
5012
5106
 
5013
5107
  // src/store/actions/remove-component-styles.ts
5014
- var import_store66 = require("@elementor/store");
5108
+ var import_store68 = require("@elementor/store");
5015
5109
  function removeComponentStyles(id2) {
5016
5110
  apiClient.invalidateComponentConfigCache(id2);
5017
- (0, import_store66.__dispatch)(slice.actions.removeStyles({ id: id2 }));
5111
+ (0, import_store68.__dispatch)(slice.actions.removeStyles({ id: id2 }));
5018
5112
  }
5019
5113
 
5020
5114
  // src/store/components-styles-provider.ts
5021
5115
  var import_editor_styles_repository = require("@elementor/editor-styles-repository");
5022
- var import_store68 = require("@elementor/store");
5116
+ var import_store70 = require("@elementor/store");
5023
5117
  var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
5024
5118
  key: "components-styles",
5025
5119
  priority: 100,
5026
- subscribe: (cb) => (0, import_store68.__subscribeWithSelector)(
5120
+ subscribe: (cb) => (0, import_store70.__subscribeWithSelector)(
5027
5121
  (state) => state[SLICE_NAME],
5028
5122
  () => {
5029
5123
  cb();
@@ -5031,29 +5125,29 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
5031
5125
  ),
5032
5126
  actions: {
5033
5127
  all: () => {
5034
- return selectFlatStyles((0, import_store68.__getState)());
5128
+ return selectFlatStyles((0, import_store70.__getState)());
5035
5129
  },
5036
5130
  get: (id2) => {
5037
- return selectFlatStyles((0, import_store68.__getState)()).find((style) => style.id === id2) ?? null;
5131
+ return selectFlatStyles((0, import_store70.__getState)()).find((style) => style.id === id2) ?? null;
5038
5132
  }
5039
5133
  }
5040
5134
  });
5041
5135
 
5042
5136
  // src/sync/create-components-before-save.ts
5043
5137
  var import_editor_elements20 = require("@elementor/editor-elements");
5044
- var import_store70 = require("@elementor/store");
5138
+ var import_store72 = require("@elementor/store");
5045
5139
  async function createComponentsBeforeSave({
5046
5140
  elements,
5047
5141
  status
5048
5142
  }) {
5049
- const unpublishedComponents = selectUnpublishedComponents((0, import_store70.__getState)());
5143
+ const unpublishedComponents = selectUnpublishedComponents((0, import_store72.__getState)());
5050
5144
  if (!unpublishedComponents.length) {
5051
5145
  return;
5052
5146
  }
5053
5147
  try {
5054
5148
  const uidToComponentId = await createComponents(unpublishedComponents, status);
5055
5149
  updateComponentInstances(elements, uidToComponentId);
5056
- (0, import_store70.__dispatch)(
5150
+ (0, import_store72.__dispatch)(
5057
5151
  slice.actions.add(
5058
5152
  unpublishedComponents.map((component) => ({
5059
5153
  id: uidToComponentId.get(component.uid),
@@ -5063,10 +5157,10 @@ async function createComponentsBeforeSave({
5063
5157
  }))
5064
5158
  )
5065
5159
  );
5066
- (0, import_store70.__dispatch)(slice.actions.resetUnpublished());
5160
+ (0, import_store72.__dispatch)(slice.actions.resetUnpublished());
5067
5161
  } catch (error) {
5068
5162
  const failedUids = unpublishedComponents.map((component) => component.uid);
5069
- (0, import_store70.__dispatch)(slice.actions.removeUnpublished(failedUids));
5163
+ (0, import_store72.__dispatch)(slice.actions.removeUnpublished(failedUids));
5070
5164
  throw new Error(`Failed to publish components: ${error}`);
5071
5165
  }
5072
5166
  }
@@ -5125,22 +5219,22 @@ function updateElementComponentId(elementId, componentId) {
5125
5219
  }
5126
5220
 
5127
5221
  // src/sync/publish-draft-components-in-page-before-save.ts
5128
- var import_editor_documents12 = require("@elementor/editor-documents");
5222
+ var import_editor_documents13 = require("@elementor/editor-documents");
5129
5223
  async function publishDraftComponentsInPageBeforeSave({ status, elements }) {
5130
5224
  if (status !== "publish") {
5131
5225
  return;
5132
5226
  }
5133
5227
  const documents = await getComponentDocuments(elements);
5134
- const draftIds = [...documents.values()].filter(import_editor_documents12.isDocumentDirty).map((document) => document.id);
5228
+ const draftIds = [...documents.values()].filter(import_editor_documents13.isDocumentDirty).map((document) => document.id);
5135
5229
  if (draftIds.length === 0) {
5136
5230
  return;
5137
5231
  }
5138
5232
  await apiClient.updateStatuses(draftIds, "publish");
5139
- draftIds.forEach((id2) => invalidateComponentDocumentData(id2));
5233
+ draftIds.forEach((id2) => (0, import_editor_documents13.invalidateDocumentData)(id2));
5140
5234
  }
5141
5235
 
5142
5236
  // src/sync/set-component-overridable-props-settings-before-save.ts
5143
- var import_store72 = require("@elementor/store");
5237
+ var import_store74 = require("@elementor/store");
5144
5238
  var setComponentOverridablePropsSettingsBeforeSave = ({
5145
5239
  container
5146
5240
  }) => {
@@ -5148,7 +5242,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
5148
5242
  if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
5149
5243
  return;
5150
5244
  }
5151
- const overridableProps = selectOverridableProps((0, import_store72.__getState)(), currentDocument.id);
5245
+ const overridableProps = selectOverridableProps((0, import_store74.__getState)(), currentDocument.id);
5152
5246
  if (overridableProps) {
5153
5247
  container.settings.set("overridable_props", overridableProps);
5154
5248
  }
@@ -5156,7 +5250,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
5156
5250
 
5157
5251
  // src/sync/update-archived-component-before-save.ts
5158
5252
  var import_editor_notifications5 = require("@elementor/editor-notifications");
5159
- var import_store74 = require("@elementor/store");
5253
+ var import_store76 = require("@elementor/store");
5160
5254
  var failedNotification = (message) => ({
5161
5255
  type: "error",
5162
5256
  message: `Failed to archive components: ${message}`,
@@ -5164,7 +5258,7 @@ var failedNotification = (message) => ({
5164
5258
  });
5165
5259
  var updateArchivedComponentBeforeSave = async (status) => {
5166
5260
  try {
5167
- const archivedComponents = selectArchivedThisSession((0, import_store74.__getState)());
5261
+ const archivedComponents = selectArchivedThisSession((0, import_store76.__getState)());
5168
5262
  if (!archivedComponents.length) {
5169
5263
  return;
5170
5264
  }
@@ -5179,15 +5273,15 @@ var updateArchivedComponentBeforeSave = async (status) => {
5179
5273
  };
5180
5274
 
5181
5275
  // src/sync/update-component-title-before-save.ts
5182
- var import_store76 = require("@elementor/store");
5276
+ var import_store78 = require("@elementor/store");
5183
5277
  var updateComponentTitleBeforeSave = async (status) => {
5184
- const updatedComponentNames = selectUpdatedComponentNames((0, import_store76.__getState)());
5278
+ const updatedComponentNames = selectUpdatedComponentNames((0, import_store78.__getState)());
5185
5279
  if (!updatedComponentNames.length) {
5186
5280
  return;
5187
5281
  }
5188
5282
  const result = await apiClient.updateComponentTitle(updatedComponentNames, status);
5189
5283
  if (result.failedIds.length === 0) {
5190
- (0, import_store76.__dispatch)(slice.actions.cleanUpdatedComponentNames());
5284
+ (0, import_store78.__dispatch)(slice.actions.cleanUpdatedComponentNames());
5191
5285
  }
5192
5286
  };
5193
5287
 
@@ -5214,11 +5308,11 @@ var updateExistingComponentsBeforeSave = async ({
5214
5308
 
5215
5309
  // src/sync/cleanup-overridable-props-on-delete.ts
5216
5310
  var import_editor_elements21 = require("@elementor/editor-elements");
5217
- var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
5218
- var import_store78 = require("@elementor/store");
5311
+ var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
5312
+ var import_store80 = require("@elementor/store");
5219
5313
  function initCleanupOverridablePropsOnDelete() {
5220
- (0, import_editor_v1_adapters9.registerDataHook)("dependency", "document/elements/delete", (args) => {
5221
- const state = (0, import_store78.__getState)();
5314
+ (0, import_editor_v1_adapters8.registerDataHook)("dependency", "document/elements/delete", (args) => {
5315
+ const state = (0, import_store80.__getState)();
5222
5316
  if (!state) {
5223
5317
  return true;
5224
5318
  }
@@ -5249,7 +5343,7 @@ function initCleanupOverridablePropsOnDelete() {
5249
5343
  for (const propKey of propKeysToDelete) {
5250
5344
  updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
5251
5345
  }
5252
- (0, import_store78.__dispatch)(
5346
+ (0, import_store80.__dispatch)(
5253
5347
  slice.actions.setOverridableProps({
5254
5348
  componentId: currentComponentId,
5255
5349
  overridableProps: {
@@ -5269,14 +5363,14 @@ function collectDeletedElementIds(containers) {
5269
5363
 
5270
5364
  // src/sync/handle-component-edit-mode-container.ts
5271
5365
  var import_editor_elements22 = require("@elementor/editor-elements");
5272
- var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
5366
+ var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
5273
5367
  var V4_DEFAULT_CONTAINER_TYPE = "e-flexbox";
5274
5368
  function initHandleComponentEditModeContainer() {
5275
5369
  initRedirectDropIntoComponent();
5276
5370
  initHandleTopLevelElementDelete();
5277
5371
  }
5278
5372
  function initHandleTopLevelElementDelete() {
5279
- (0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/delete", (args) => {
5373
+ (0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/delete", (args) => {
5280
5374
  if (!isEditingComponent()) {
5281
5375
  return;
5282
5376
  }
@@ -5294,7 +5388,7 @@ function initHandleTopLevelElementDelete() {
5294
5388
  });
5295
5389
  }
5296
5390
  function initRedirectDropIntoComponent() {
5297
- (0, import_editor_v1_adapters10.registerDataHook)("dependency", "preview/drop", (args) => {
5391
+ (0, import_editor_v1_adapters9.registerDataHook)("dependency", "preview/drop", (args) => {
5298
5392
  if (!isEditingComponent()) {
5299
5393
  return true;
5300
5394
  }
@@ -5340,12 +5434,12 @@ function isComponent(container) {
5340
5434
  }
5341
5435
 
5342
5436
  // src/sync/load-component-data-after-instance-added.ts
5343
- var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
5437
+ var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
5344
5438
  function initLoadComponentDataAfterInstanceAdded() {
5345
- (0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/paste", (_args, result) => {
5439
+ (0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/paste", (_args, result) => {
5346
5440
  load(result);
5347
5441
  });
5348
- (0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/import", (_args, result) => {
5442
+ (0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/import", (_args, result) => {
5349
5443
  load(result);
5350
5444
  });
5351
5445
  }
@@ -5354,95 +5448,16 @@ function load(result) {
5354
5448
  loadComponentsAssets(containers.map((container) => container.model.toJSON()));
5355
5449
  }
5356
5450
 
5357
- // src/sync/regenerate-override-keys.ts
5358
- var import_editor_elements23 = require("@elementor/editor-elements");
5359
- var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
5360
- var import_utils10 = require("@elementor/utils");
5361
- function initRegenerateOverrideKeys() {
5362
- (0, import_editor_v1_adapters12.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
5363
- regenerateOverrideKeysForContainers(result);
5364
- });
5365
- (0, import_editor_v1_adapters12.registerDataHook)("after", "document/elements/paste", (_args, result) => {
5366
- regenerateOverrideKeysForContainers(result);
5367
- });
5368
- (0, import_editor_v1_adapters12.registerDataHook)("after", "document/elements/import", (_args, result) => {
5369
- regenerateOverrideKeysForContainers(result);
5370
- });
5371
- }
5372
- function regenerateOverrideKeysForContainers(result) {
5373
- const containers = Array.isArray(result) ? result : [result];
5374
- containers.forEach((container) => {
5375
- regenerateOverrideKeysRecursive(container.id);
5376
- });
5377
- }
5378
- function regenerateOverrideKeysRecursive(elementId) {
5379
- const container = (0, import_editor_elements23.getContainer)(elementId);
5380
- if (!container) {
5381
- return;
5382
- }
5383
- (0, import_editor_elements23.getAllDescendants)(container).forEach(regenerateOverrideKeys);
5384
- }
5385
- function regenerateOverrideKeys(element) {
5386
- if (!isComponentInstance(element.model.toJSON())) {
5387
- return;
5388
- }
5389
- const settings = element.settings?.toJSON() ?? {};
5390
- if (!hasOverrides(settings)) {
5391
- return;
5392
- }
5393
- const componentInstance = settings.component_instance;
5394
- const overrides = componentInstance.value.overrides;
5395
- const newOverrides = overrides.value.map((override) => {
5396
- if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
5397
- return override;
5398
- }
5399
- return {
5400
- ...override,
5401
- value: {
5402
- ...override.value,
5403
- override_key: (0, import_utils10.generateUniqueId)("prop")
5404
- }
5405
- };
5406
- });
5407
- const newComponentInstance = {
5408
- ...componentInstance,
5409
- value: {
5410
- ...componentInstance.value,
5411
- overrides: {
5412
- ...overrides,
5413
- value: newOverrides
5414
- }
5415
- }
5416
- };
5417
- (0, import_editor_elements23.updateElementSettings)({
5418
- id: element.id,
5419
- props: { component_instance: newComponentInstance },
5420
- withHistory: false
5421
- });
5422
- }
5423
- function hasOverrides(settings) {
5424
- if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
5425
- return false;
5426
- }
5427
- const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
5428
- const overrides = componentInstance?.overrides;
5429
- if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
5430
- return false;
5431
- }
5432
- const overridesValue = overrides?.value;
5433
- return !!overridesValue?.length;
5434
- }
5435
-
5436
5451
  // src/sync/revert-overridables-on-copy-or-duplicate.ts
5437
- var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
5452
+ var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
5438
5453
  function initRevertOverridablesOnCopyOrDuplicate() {
5439
- (0, import_editor_v1_adapters13.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
5454
+ (0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
5440
5455
  if (!isEditingComponent()) {
5441
5456
  return;
5442
5457
  }
5443
5458
  revertOverridablesForDuplicatedElements(result);
5444
5459
  });
5445
- (0, import_editor_v1_adapters13.registerDataHook)("after", "document/elements/copy", (args) => {
5460
+ (0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/copy", (args) => {
5446
5461
  if (!isEditingComponent()) {
5447
5462
  return;
5448
5463
  }
@@ -5474,20 +5489,20 @@ function revertOverridablesInStorage(storageKey) {
5474
5489
  // src/init.ts
5475
5490
  function init() {
5476
5491
  import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
5477
- (0, import_store80.__registerSlice)(slice);
5492
+ (0, import_store82.__registerSlice)(slice);
5478
5493
  (0, import_editor_panels5.__registerPanel)(panel);
5479
5494
  (0, import_editor_canvas8.registerElementType)(
5480
5495
  COMPONENT_WIDGET_TYPE,
5481
5496
  (options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
5482
5497
  );
5483
- (0, import_editor_v1_adapters14.registerDataHook)("dependency", "editor/documents/close", (args) => {
5484
- const document = (0, import_editor_documents13.getV1CurrentDocument)();
5498
+ (0, import_editor_v1_adapters12.registerDataHook)("dependency", "editor/documents/close", (args) => {
5499
+ const document = (0, import_editor_documents14.getV1CurrentDocument)();
5485
5500
  if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
5486
5501
  args.mode = "autosave";
5487
5502
  }
5488
5503
  return true;
5489
5504
  });
5490
- (0, import_editor_v1_adapters14.registerDataHook)("after", "preview/drop", onElementDrop);
5505
+ (0, import_editor_v1_adapters12.registerDataHook)("after", "preview/drop", onElementDrop);
5491
5506
  window.elementorCommon.__beforeSave = beforeSave;
5492
5507
  (0, import_editor_elements_panel.injectTab)({
5493
5508
  id: "components",
@@ -5511,8 +5526,8 @@ function init() {
5511
5526
  id: "component-panel-header",
5512
5527
  component: ComponentPanelHeader
5513
5528
  });
5514
- (0, import_editor_v1_adapters14.registerDataHook)("after", "editor/documents/attach-preview", async () => {
5515
- const { id: id2, config } = (0, import_editor_documents13.getV1CurrentDocument)();
5529
+ (0, import_editor_v1_adapters12.registerDataHook)("after", "editor/documents/attach-preview", async () => {
5530
+ const { id: id2, config } = (0, import_editor_documents14.getV1CurrentDocument)();
5516
5531
  if (id2) {
5517
5532
  removeComponentStyles(id2);
5518
5533
  }
@@ -5537,7 +5552,6 @@ function init() {
5537
5552
  import_editor_canvas8.settingsTransformersRegistry.register("component-instance", componentInstanceTransformer);
5538
5553
  import_editor_canvas8.settingsTransformersRegistry.register("overridable", componentOverridableTransformer);
5539
5554
  import_editor_canvas8.settingsTransformersRegistry.register("override", componentOverrideTransformer);
5540
- initRegenerateOverrideKeys();
5541
5555
  initCleanupOverridablePropsOnDelete();
5542
5556
  initMcp();
5543
5557
  initCircularNestingPrevention();