@elementor/editor-components 3.35.0-419 → 3.35.0-421

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_canvas9 = require("@elementor/editor-canvas");
40
- var import_editor_documents12 = require("@elementor/editor-documents");
40
+ var import_editor_documents13 = 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_panels4 = require("@elementor/editor-panels");
44
44
  var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
45
45
  var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
46
- var import_store76 = require("@elementor/store");
46
+ var import_store78 = require("@elementor/store");
47
47
  var import_i18n26 = require("@wordpress/i18n");
48
48
 
49
49
  // src/component-instance-transformer.ts
@@ -1701,46 +1701,19 @@ var useComponents = () => {
1701
1701
  };
1702
1702
 
1703
1703
  // src/store/actions/rename-component.ts
1704
- var import_store29 = require("@elementor/store");
1705
- var renameComponent = (componentUid, newName) => {
1706
- (0, import_store29.__dispatch)(slice.actions.rename({ componentUid, name: newName }));
1707
- };
1708
-
1709
- // src/components/components-tab/components-item.tsx
1710
- var React13 = __toESM(require("react"));
1711
- var import_react8 = require("react");
1712
- var import_editor_canvas5 = require("@elementor/editor-canvas");
1713
- var import_editor_elements7 = require("@elementor/editor-elements");
1714
- var import_editor_ui6 = require("@elementor/editor-ui");
1715
- var import_icons9 = require("@elementor/icons");
1716
- var import_ui12 = require("@elementor/ui");
1717
- var import_i18n15 = require("@wordpress/i18n");
1718
-
1719
- // src/store/actions/archive-component.ts
1720
- var import_editor_documents6 = require("@elementor/editor-documents");
1721
- var import_store31 = require("@elementor/store");
1722
- var archiveComponent = (componentId) => {
1723
- const store = (0, import_store31.__getStore)();
1724
- const dispatch18 = store?.dispatch;
1725
- if (!dispatch18) {
1726
- return;
1727
- }
1728
- dispatch18(slice.actions.archive(componentId));
1729
- (0, import_editor_documents6.setDocumentModifiedStatus)(true);
1730
- };
1731
-
1732
- // src/store/actions/load-components-assets.ts
1733
- var import_editor_documents8 = require("@elementor/editor-documents");
1704
+ var import_editor_documents7 = require("@elementor/editor-documents");
1705
+ var import_editor_elements5 = require("@elementor/editor-elements");
1706
+ var import_store33 = require("@elementor/store");
1734
1707
 
1735
1708
  // src/create-component-type.ts
1736
1709
  var import_editor_canvas4 = require("@elementor/editor-canvas");
1737
- var import_editor_documents7 = require("@elementor/editor-documents");
1738
- var import_store35 = require("@elementor/store");
1710
+ var import_editor_documents6 = require("@elementor/editor-documents");
1711
+ var import_store31 = require("@elementor/store");
1739
1712
  var import_i18n13 = require("@wordpress/i18n");
1740
1713
 
1741
1714
  // src/utils/tracking.ts
1742
1715
  var import_mixpanel = require("@elementor/mixpanel");
1743
- var import_store33 = require("@elementor/store");
1716
+ var import_store29 = require("@elementor/store");
1744
1717
  var trackComponentEvent = ({ action, ...data }) => {
1745
1718
  const { dispatchEvent, config } = (0, import_mixpanel.getMixpanel)();
1746
1719
  if (!config?.names?.components?.[action]) {
@@ -1757,7 +1730,7 @@ var onElementDrop = (_args, element) => {
1757
1730
  const componentName = editorSettings?.title;
1758
1731
  const componentUID = editorSettings?.component_uid;
1759
1732
  const instanceId = element.id;
1760
- const createdThisSession = selectCreatedThisSession((0, import_store33.__getState)());
1733
+ const createdThisSession = selectCreatedThisSession((0, import_store29.__getState)());
1761
1734
  const isSameSessionReuse = componentUID && createdThisSession.includes(componentUID);
1762
1735
  const eventsManagerConfig = window.elementorCommon.eventsManager.config;
1763
1736
  const { locations, secondaryLocations } = eventsManagerConfig;
@@ -1810,7 +1783,7 @@ function createComponentView(options) {
1810
1783
  eventsManagerConfig = this.legacyWindow.elementorCommon.eventsManager.config;
1811
1784
  #componentRenderContext;
1812
1785
  isComponentCurrentlyEdited() {
1813
- const currentDocument = (0, import_editor_documents7.getCurrentDocument)();
1786
+ const currentDocument = (0, import_editor_documents6.getCurrentDocument)();
1814
1787
  return currentDocument?.id === this.getComponentId();
1815
1788
  }
1816
1789
  getRenderContext() {
@@ -1983,7 +1956,7 @@ function createComponentModel() {
1983
1956
  }
1984
1957
  const componentUid = editorSettings?.component_uid;
1985
1958
  if (componentUid) {
1986
- const component = selectComponentByUid((0, import_store35.__getState)(), componentUid);
1959
+ const component = selectComponentByUid((0, import_store31.__getState)(), componentUid);
1987
1960
  if (component?.name) {
1988
1961
  return component.name;
1989
1962
  }
@@ -2003,6 +1976,63 @@ function createComponentModel() {
2003
1976
  });
2004
1977
  }
2005
1978
 
1979
+ // src/store/actions/rename-component.ts
1980
+ var TITLE_EXTERNAL_CHANGE_COMMAND = "title_external_change";
1981
+ var renameComponent = (componentUid, newName) => {
1982
+ (0, import_store33.__dispatch)(slice.actions.rename({ componentUid, name: newName }));
1983
+ (0, import_editor_documents7.setDocumentModifiedStatus)(true);
1984
+ refreshComponentInstanceTitles(componentUid);
1985
+ };
1986
+ function refreshComponentInstanceTitles(componentUid) {
1987
+ const documentContainer = getDocumentContainer();
1988
+ if (!documentContainer) {
1989
+ return;
1990
+ }
1991
+ const componentInstances = findComponentInstancesByUid(documentContainer, componentUid);
1992
+ componentInstances.forEach((element) => {
1993
+ element.model.trigger?.(TITLE_EXTERNAL_CHANGE_COMMAND);
1994
+ });
1995
+ }
1996
+ function getDocumentContainer() {
1997
+ const documentsManager = (0, import_editor_documents7.getV1DocumentsManager)();
1998
+ return documentsManager?.getCurrent()?.container;
1999
+ }
2000
+ function findComponentInstancesByUid(documentContainer, componentUid) {
2001
+ const allDescendants = (0, import_editor_elements5.getAllDescendants)(documentContainer);
2002
+ return allDescendants.filter((element) => {
2003
+ const widgetType = element.model.get("widgetType");
2004
+ const editorSettings = element.model.get("editor_settings");
2005
+ const isMatch = widgetType === COMPONENT_WIDGET_TYPE && editorSettings?.component_uid === componentUid;
2006
+ return isMatch;
2007
+ });
2008
+ }
2009
+
2010
+ // src/components/components-tab/components-item.tsx
2011
+ var React13 = __toESM(require("react"));
2012
+ var import_react8 = require("react");
2013
+ var import_editor_canvas5 = require("@elementor/editor-canvas");
2014
+ var import_editor_elements8 = require("@elementor/editor-elements");
2015
+ var import_editor_ui6 = require("@elementor/editor-ui");
2016
+ var import_icons9 = require("@elementor/icons");
2017
+ var import_ui12 = require("@elementor/ui");
2018
+ var import_i18n15 = require("@wordpress/i18n");
2019
+
2020
+ // src/store/actions/archive-component.ts
2021
+ var import_editor_documents8 = require("@elementor/editor-documents");
2022
+ var import_store35 = require("@elementor/store");
2023
+ var archiveComponent = (componentId) => {
2024
+ const store = (0, import_store35.__getStore)();
2025
+ const dispatch18 = store?.dispatch;
2026
+ if (!dispatch18) {
2027
+ return;
2028
+ }
2029
+ dispatch18(slice.actions.archive(componentId));
2030
+ (0, import_editor_documents8.setDocumentModifiedStatus)(true);
2031
+ };
2032
+
2033
+ // src/store/actions/load-components-assets.ts
2034
+ var import_editor_documents9 = require("@elementor/editor-documents");
2035
+
2006
2036
  // src/utils/is-component-instance.ts
2007
2037
  function isComponentInstance(elementModel) {
2008
2038
  return [elementModel.widgetType, elementModel.elType].includes(COMPONENT_WIDGET_TYPE);
@@ -2102,9 +2132,9 @@ async function updateDocumentState(componentIds) {
2102
2132
  const components = (await Promise.all(componentIds.map(getComponentDocumentData))).filter(
2103
2133
  (document) => !!document
2104
2134
  );
2105
- const isDrafted = components.some(import_editor_documents8.isDocumentDirty);
2135
+ const isDrafted = components.some(import_editor_documents9.isDocumentDirty);
2106
2136
  if (isDrafted) {
2107
- (0, import_editor_documents8.setDocumentModifiedStatus)(true);
2137
+ (0, import_editor_documents9.setDocumentModifiedStatus)(true);
2108
2138
  }
2109
2139
  }
2110
2140
 
@@ -2155,9 +2185,9 @@ function validateComponentName(label) {
2155
2185
  }
2156
2186
 
2157
2187
  // src/utils/get-container-for-new-element.ts
2158
- var import_editor_elements5 = require("@elementor/editor-elements");
2188
+ var import_editor_elements6 = require("@elementor/editor-elements");
2159
2189
  var getContainerForNewElement = () => {
2160
- const currentDocumentContainer = (0, import_editor_elements5.getCurrentDocumentContainer)();
2190
+ const currentDocumentContainer = (0, import_editor_elements6.getCurrentDocumentContainer)();
2161
2191
  const selectedElement = getSelectedElementContainer();
2162
2192
  let container, options;
2163
2193
  if (selectedElement) {
@@ -2183,17 +2213,17 @@ var getContainerForNewElement = () => {
2183
2213
  return { container: container ?? currentDocumentContainer, options };
2184
2214
  };
2185
2215
  function getSelectedElementContainer() {
2186
- const selectedElements = (0, import_editor_elements5.getSelectedElements)();
2216
+ const selectedElements = (0, import_editor_elements6.getSelectedElements)();
2187
2217
  if (selectedElements.length !== 1) {
2188
2218
  return void 0;
2189
2219
  }
2190
- return (0, import_editor_elements5.getContainer)(selectedElements[0].id);
2220
+ return (0, import_editor_elements6.getContainer)(selectedElements[0].id);
2191
2221
  }
2192
2222
 
2193
2223
  // src/components/create-component-form/utils/replace-element-with-component.ts
2194
- var import_editor_elements6 = require("@elementor/editor-elements");
2195
- var replaceElementWithComponent = (element, component) => {
2196
- (0, import_editor_elements6.replaceElement)({
2224
+ var import_editor_elements7 = require("@elementor/editor-elements");
2225
+ var replaceElementWithComponent = async (element, component) => {
2226
+ return await (0, import_editor_elements7.replaceElement)({
2197
2227
  currentElement: element,
2198
2228
  newElement: createComponentModel2(component),
2199
2229
  withHistory: false
@@ -2346,7 +2376,7 @@ var addComponentToPage = (model) => {
2346
2376
  throw new Error(`Can't find container to drop new component instance at`);
2347
2377
  }
2348
2378
  loadComponentsAssets([model]);
2349
- (0, import_editor_elements7.dropElement)({
2379
+ (0, import_editor_elements8.dropElement)({
2350
2380
  containerId: container.id,
2351
2381
  model,
2352
2382
  options: { ...options, useHistory: false, scrollIntoView: true }
@@ -2552,16 +2582,17 @@ var COMPONENT_DOCUMENT_TYPE = "elementor_component";
2552
2582
  // src/components/create-component-form/create-component-form.tsx
2553
2583
  var React17 = __toESM(require("react"));
2554
2584
  var import_react10 = require("react");
2555
- var import_editor_elements9 = require("@elementor/editor-elements");
2585
+ var import_editor_elements10 = require("@elementor/editor-elements");
2556
2586
  var import_editor_notifications2 = require("@elementor/editor-notifications");
2557
2587
  var import_editor_ui8 = require("@elementor/editor-ui");
2558
2588
  var import_icons11 = require("@elementor/icons");
2589
+ var import_store47 = require("@elementor/store");
2559
2590
  var import_ui15 = require("@elementor/ui");
2560
2591
  var import_i18n18 = require("@wordpress/i18n");
2561
2592
 
2562
2593
  // src/prevent-non-atomic-nesting.ts
2563
2594
  var import_editor_canvas6 = require("@elementor/editor-canvas");
2564
- var import_editor_elements8 = require("@elementor/editor-elements");
2595
+ var import_editor_elements9 = require("@elementor/editor-elements");
2565
2596
  var import_editor_notifications = require("@elementor/editor-notifications");
2566
2597
  var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
2567
2598
  var import_store43 = require("@elementor/store");
@@ -2593,7 +2624,7 @@ function isEditingComponent() {
2593
2624
  return selectCurrentComponentId(state) !== null;
2594
2625
  }
2595
2626
  function isElementAtomic(elementType) {
2596
- return (0, import_editor_elements8.getElementType)(elementType) !== null;
2627
+ return (0, import_editor_elements9.getElementType)(elementType) !== null;
2597
2628
  }
2598
2629
  function blockNonAtomicCreate(args) {
2599
2630
  if (!isEditingComponent()) {
@@ -2619,7 +2650,7 @@ function blockNonAtomicMove(args) {
2619
2650
  if (!container) {
2620
2651
  return false;
2621
2652
  }
2622
- const allElements = (0, import_editor_elements8.getAllDescendants)(container);
2653
+ const allElements = (0, import_editor_elements9.getAllDescendants)(container);
2623
2654
  return allElements.some((element) => !(0, import_editor_canvas6.isAtomicWidget)(element));
2624
2655
  });
2625
2656
  if (hasNonAtomicElement) {
@@ -2677,7 +2708,7 @@ function findNonAtomicElementsInElement(element) {
2677
2708
  var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
2678
2709
  var import_store45 = require("@elementor/store");
2679
2710
  var import_utils4 = require("@elementor/utils");
2680
- function createUnpublishedComponent(name, element, eventData, overridableProps, uid) {
2711
+ async function createUnpublishedComponent(name, element, eventData, overridableProps, uid) {
2681
2712
  const generatedUid = uid ?? (0, import_utils4.generateUniqueId)("component");
2682
2713
  const componentBase = { uid: generatedUid, name, overridableProps };
2683
2714
  (0, import_store45.__dispatch)(
@@ -2687,15 +2718,15 @@ function createUnpublishedComponent(name, element, eventData, overridableProps,
2687
2718
  })
2688
2719
  );
2689
2720
  (0, import_store45.__dispatch)(slice.actions.addCreatedThisSession(generatedUid));
2690
- replaceElementWithComponent(element, componentBase);
2721
+ const componentInstance = await replaceElementWithComponent(element, componentBase);
2691
2722
  trackComponentEvent({
2692
2723
  action: "created",
2693
2724
  component_uid: generatedUid,
2694
2725
  component_name: name,
2695
2726
  ...eventData
2696
2727
  });
2697
- (0, import_editor_v1_adapters5.__privateRunCommand)("document/save/auto");
2698
- return generatedUid;
2728
+ await (0, import_editor_v1_adapters5.__privateRunCommand)("document/save/auto");
2729
+ return { uid: generatedUid, instanceId: componentInstance.id };
2699
2730
  }
2700
2731
 
2701
2732
  // src/components/create-component-form/hooks/use-form.ts
@@ -2797,7 +2828,7 @@ function CreateComponentForm() {
2797
2828
  });
2798
2829
  return;
2799
2830
  }
2800
- setElement({ element: event.detail.element, elementLabel: (0, import_editor_elements9.getElementLabel)(event.detail.element.id) });
2831
+ setElement({ element: event.detail.element, elementLabel: (0, import_editor_elements10.getElementLabel)(event.detail.element.id) });
2801
2832
  setAnchorPosition(event.detail.anchorPosition);
2802
2833
  eventData.current = getComponentEventData(event.detail.element, event.detail.options);
2803
2834
  trackComponentEvent({
@@ -2810,12 +2841,22 @@ function CreateComponentForm() {
2810
2841
  window.removeEventListener(OPEN_SAVE_AS_COMPONENT_FORM_EVENT, openPopup);
2811
2842
  };
2812
2843
  }, []);
2813
- const handleSave = (values) => {
2844
+ const handleSave = async (values) => {
2814
2845
  try {
2815
2846
  if (!element) {
2816
2847
  throw new Error(`Can't save element as component: element not found`);
2817
2848
  }
2818
- const uid = createUnpublishedComponent(values.componentName, element.element, eventData.current);
2849
+ const { uid, instanceId } = await createUnpublishedComponent(
2850
+ values.componentName,
2851
+ element.element,
2852
+ eventData.current
2853
+ );
2854
+ const publishedComponentId = selectComponentByUid((0, import_store47.__getState)(), uid)?.id;
2855
+ if (publishedComponentId) {
2856
+ switchToComponent(publishedComponentId, instanceId);
2857
+ } else {
2858
+ throw new Error("Failed to find published component");
2859
+ }
2819
2860
  setResultNotification({
2820
2861
  show: true,
2821
2862
  // Translators: %1$s: Component name, %2$s: Component UID
@@ -2930,19 +2971,19 @@ var Form2 = ({
2930
2971
  // src/components/edit-component/edit-component.tsx
2931
2972
  var React19 = __toESM(require("react"));
2932
2973
  var import_react13 = require("react");
2933
- var import_editor_documents10 = require("@elementor/editor-documents");
2974
+ var import_editor_documents11 = require("@elementor/editor-documents");
2934
2975
  var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
2935
- var import_store49 = require("@elementor/store");
2976
+ var import_store51 = require("@elementor/store");
2936
2977
  var import_utils6 = require("@elementor/utils");
2937
2978
 
2938
2979
  // src/store/actions/update-current-component.ts
2939
- var import_editor_documents9 = require("@elementor/editor-documents");
2940
- var import_store47 = require("@elementor/store");
2980
+ var import_editor_documents10 = require("@elementor/editor-documents");
2981
+ var import_store49 = require("@elementor/store");
2941
2982
  function updateCurrentComponent({
2942
2983
  path,
2943
2984
  currentComponentId
2944
2985
  }) {
2945
- const dispatch18 = (0, import_store47.__getStore)()?.dispatch;
2986
+ const dispatch18 = (0, import_store49.__getStore)()?.dispatch;
2946
2987
  if (!dispatch18) {
2947
2988
  return;
2948
2989
  }
@@ -3142,9 +3183,9 @@ function EditComponent() {
3142
3183
  return /* @__PURE__ */ React19.createElement(ComponentModal, { element: elementDom, onClose });
3143
3184
  }
3144
3185
  function useHandleDocumentSwitches() {
3145
- const documentsManager = (0, import_editor_documents10.getV1DocumentsManager)();
3186
+ const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
3146
3187
  const currentComponentId = useCurrentComponentId();
3147
- const path = (0, import_store49.__useSelector)(selectPath);
3188
+ const path = (0, import_store51.__useSelector)(selectPath);
3148
3189
  (0, import_react13.useEffect)(() => {
3149
3190
  return (0, import_editor_v1_adapters7.__privateListenTo)((0, import_editor_v1_adapters7.commandEndEvent)("editor/documents/open"), () => {
3150
3191
  const nextDocument = documentsManager.getCurrent();
@@ -3186,7 +3227,7 @@ function getInstanceTitle(instanceId, path) {
3186
3227
  if (!instanceId) {
3187
3228
  return void 0;
3188
3229
  }
3189
- const documentsManager = (0, import_editor_documents10.getV1DocumentsManager)();
3230
+ const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
3190
3231
  const parentDocId = path.at(-1)?.componentId ?? documentsManager.getInitialId();
3191
3232
  const parentDoc = documentsManager.get(parentDocId);
3192
3233
  const parentContainer = parentDoc?.container;
@@ -3200,7 +3241,7 @@ function getComponentDOMElement(id2) {
3200
3241
  if (!id2) {
3201
3242
  return null;
3202
3243
  }
3203
- const documentsManager = (0, import_editor_documents10.getV1DocumentsManager)();
3244
+ const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
3204
3245
  const currentComponent = documentsManager.get(id2);
3205
3246
  const widget = currentComponent?.container;
3206
3247
  const container = widget?.view?.el?.children?.[0] ?? null;
@@ -3231,7 +3272,7 @@ var EditModeDialog = ({ lockedBy }) => {
3231
3272
  var React25 = __toESM(require("react"));
3232
3273
  var import_editor_controls4 = require("@elementor/editor-controls");
3233
3274
  var import_editor_editing_panel5 = require("@elementor/editor-editing-panel");
3234
- var import_editor_elements13 = require("@elementor/editor-elements");
3275
+ var import_editor_elements14 = require("@elementor/editor-elements");
3235
3276
  var import_editor_panels3 = require("@elementor/editor-panels");
3236
3277
  var import_icons14 = require("@elementor/icons");
3237
3278
  var import_ui21 = require("@elementor/ui");
@@ -3239,7 +3280,7 @@ var import_i18n22 = require("@wordpress/i18n");
3239
3280
 
3240
3281
  // src/hooks/use-component-instance-settings.ts
3241
3282
  var import_editor_editing_panel2 = require("@elementor/editor-editing-panel");
3242
- var import_editor_elements10 = require("@elementor/editor-elements");
3283
+ var import_editor_elements11 = require("@elementor/editor-elements");
3243
3284
 
3244
3285
  // src/prop-types/component-instance-prop-type.ts
3245
3286
  var import_editor_props4 = require("@elementor/editor-props");
@@ -3296,7 +3337,7 @@ var componentInstancePropTypeUtil = (0, import_editor_props4.createPropUtils)(
3296
3337
  // src/hooks/use-component-instance-settings.ts
3297
3338
  function useComponentInstanceSettings() {
3298
3339
  const { element } = (0, import_editor_editing_panel2.useElement)();
3299
- const settings = (0, import_editor_elements10.useElementSetting)(element.id, "component_instance");
3340
+ const settings = (0, import_editor_elements11.useElementSetting)(element.id, "component_instance");
3300
3341
  return componentInstancePropTypeUtil.extract(settings);
3301
3342
  }
3302
3343
 
@@ -3340,9 +3381,9 @@ var import_editor_editing_panel3 = require("@elementor/editor-editing-panel");
3340
3381
  var import_ui19 = require("@elementor/ui");
3341
3382
 
3342
3383
  // src/hooks/use-controls-by-widget-type.ts
3343
- var import_editor_elements11 = require("@elementor/editor-elements");
3384
+ var import_editor_elements12 = require("@elementor/editor-elements");
3344
3385
  function useControlsByWidgetType(type) {
3345
- const elementType = (0, import_editor_elements11.getElementType)(type);
3386
+ const elementType = (0, import_editor_elements12.getElementType)(type);
3346
3387
  if (!elementType) {
3347
3388
  return {};
3348
3389
  }
@@ -3371,9 +3412,9 @@ function getControlsByBind(controls) {
3371
3412
  }
3372
3413
 
3373
3414
  // src/store/actions/update-overridable-prop.ts
3374
- var import_store51 = require("@elementor/store");
3415
+ var import_store53 = require("@elementor/store");
3375
3416
  function updateOverridableProp(componentId, propValue, originPropFields) {
3376
- const overridableProps = selectOverridableProps((0, import_store51.__getState)(), componentId);
3417
+ const overridableProps = selectOverridableProps((0, import_store53.__getState)(), componentId);
3377
3418
  if (!overridableProps) {
3378
3419
  return;
3379
3420
  }
@@ -3397,7 +3438,7 @@ function updateOverridableProp(componentId, propValue, originPropFields) {
3397
3438
  }
3398
3439
  }
3399
3440
  };
3400
- (0, import_store51.__dispatch)(
3441
+ (0, import_store53.__dispatch)(
3401
3442
  slice.actions.setOverridableProps({
3402
3443
  componentId,
3403
3444
  overridableProps: newOverridableProps
@@ -3406,7 +3447,7 @@ function updateOverridableProp(componentId, propValue, originPropFields) {
3406
3447
  }
3407
3448
 
3408
3449
  // src/utils/get-prop-type-for-component-override.ts
3409
- var import_editor_elements12 = require("@elementor/editor-elements");
3450
+ var import_editor_elements13 = require("@elementor/editor-elements");
3410
3451
  var getPropTypeForComponentOverride = (overridableProp) => {
3411
3452
  if (overridableProp.originPropFields) {
3412
3453
  return getPropType(overridableProp.originPropFields);
@@ -3419,7 +3460,7 @@ var getPropTypeForComponentOverride = (overridableProp) => {
3419
3460
  });
3420
3461
  };
3421
3462
  function getPropType({ widgetType, propKey }) {
3422
- const widgetPropsSchema = (0, import_editor_elements12.getWidgetsCache)()?.[widgetType]?.atomic_props_schema;
3463
+ const widgetPropsSchema = (0, import_editor_elements13.getWidgetsCache)()?.[widgetType]?.atomic_props_schema;
3423
3464
  return widgetPropsSchema?.[propKey];
3424
3465
  }
3425
3466
 
@@ -3592,7 +3633,7 @@ function InstanceEditingPanel() {
3592
3633
  const overrides = settings?.overrides?.value;
3593
3634
  const component = useComponent(componentId ?? null);
3594
3635
  const overridableProps = useOverridableProps(componentId ?? null);
3595
- const componentInstanceId = (0, import_editor_elements13.useSelectedElement)()?.element?.id ?? null;
3636
+ const componentInstanceId = (0, import_editor_elements14.useSelectedElement)()?.element?.id ?? null;
3596
3637
  if (!componentId || !overridableProps || !component) {
3597
3638
  return null;
3598
3639
  }
@@ -3680,12 +3721,12 @@ function OverridablePropControl({
3680
3721
  var React29 = __toESM(require("react"));
3681
3722
  var import_editor_controls6 = require("@elementor/editor-controls");
3682
3723
  var import_editor_editing_panel7 = require("@elementor/editor-editing-panel");
3683
- var import_editor_elements14 = require("@elementor/editor-elements");
3724
+ var import_editor_elements15 = require("@elementor/editor-elements");
3684
3725
  var import_ui23 = require("@elementor/ui");
3685
3726
  var import_i18n24 = require("@wordpress/i18n");
3686
3727
 
3687
3728
  // src/store/actions/set-overridable-prop.ts
3688
- var import_store56 = require("@elementor/store");
3729
+ var import_store58 = require("@elementor/store");
3689
3730
  var import_utils7 = require("@elementor/utils");
3690
3731
  function setOverridableProp({
3691
3732
  componentId,
@@ -3699,7 +3740,7 @@ function setOverridableProp({
3699
3740
  originValue,
3700
3741
  originPropFields
3701
3742
  }) {
3702
- const overridableProps = selectOverridableProps((0, import_store56.__getState)(), componentId);
3743
+ const overridableProps = selectOverridableProps((0, import_store58.__getState)(), componentId);
3703
3744
  if (!overridableProps) {
3704
3745
  return;
3705
3746
  }
@@ -3736,7 +3777,7 @@ function setOverridableProp({
3736
3777
  if (isChangingGroups) {
3737
3778
  groups = removePropFromGroup(groups, existingOverridableProp.groupId, overridableProp.overrideKey);
3738
3779
  }
3739
- (0, import_store56.__dispatch)(
3780
+ (0, import_store58.__dispatch)(
3740
3781
  slice.actions.setOverridableProps({
3741
3782
  componentId,
3742
3783
  overridableProps: {
@@ -3819,12 +3860,12 @@ var Indicator2 = (0, import_react16.forwardRef)(({ isOpen, isOverridable, ...pro
3819
3860
  )));
3820
3861
 
3821
3862
  // src/components/overridable-props/utils/get-overridable-prop.ts
3822
- var import_store58 = require("@elementor/store");
3863
+ var import_store60 = require("@elementor/store");
3823
3864
  function getOverridableProp({
3824
3865
  componentId,
3825
3866
  overrideKey
3826
3867
  }) {
3827
- const overridableProps = selectOverridableProps((0, import_store58.__getState)(), componentId);
3868
+ const overridableProps = selectOverridableProps((0, import_store60.__getState)(), componentId);
3828
3869
  if (!overridableProps) {
3829
3870
  return void 0;
3830
3871
  }
@@ -3858,7 +3899,7 @@ function Content2({ componentId, overridableProps }) {
3858
3899
  });
3859
3900
  const triggerProps = (0, import_ui23.bindTrigger)(popupState);
3860
3901
  const popoverProps = (0, import_ui23.bindPopover)(popupState);
3861
- const { elType } = (0, import_editor_elements14.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
3902
+ const { elType } = (0, import_editor_elements15.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
3862
3903
  const handleSubmit = ({ label, group }) => {
3863
3904
  const propTypeDefault = propType.default ?? {};
3864
3905
  const originValue = (!overridableValue ? value : overridableValue?.origin_value) ?? propTypeDefault;
@@ -3919,7 +3960,7 @@ function isPropAllowed(bind) {
3919
3960
  }
3920
3961
 
3921
3962
  // src/hooks/regenerate-override-keys.ts
3922
- var import_editor_elements15 = require("@elementor/editor-elements");
3963
+ var import_editor_elements16 = require("@elementor/editor-elements");
3923
3964
  var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
3924
3965
  var import_utils8 = require("@elementor/utils");
3925
3966
  function initRegenerateOverrideKeys() {
@@ -3940,11 +3981,11 @@ function regenerateOverrideKeysForContainers(result) {
3940
3981
  });
3941
3982
  }
3942
3983
  function regenerateOverrideKeysRecursive(elementId) {
3943
- const container = (0, import_editor_elements15.getContainer)(elementId);
3984
+ const container = (0, import_editor_elements16.getContainer)(elementId);
3944
3985
  if (!container) {
3945
3986
  return;
3946
3987
  }
3947
- (0, import_editor_elements15.getAllDescendants)(container).forEach(regenerateOverrideKeys);
3988
+ (0, import_editor_elements16.getAllDescendants)(container).forEach(regenerateOverrideKeys);
3948
3989
  }
3949
3990
  function regenerateOverrideKeys(element) {
3950
3991
  if (!isComponentInstance(element.model.toJSON())) {
@@ -3978,7 +4019,7 @@ function regenerateOverrideKeys(element) {
3978
4019
  }
3979
4020
  }
3980
4021
  };
3981
- (0, import_editor_elements15.updateElementSettings)({
4022
+ (0, import_editor_elements16.updateElementSettings)({
3982
4023
  id: element.id,
3983
4024
  props: { component_instance: newComponentInstance },
3984
4025
  withHistory: false
@@ -4002,7 +4043,7 @@ var import_editor_mcp2 = require("@elementor/editor-mcp");
4002
4043
 
4003
4044
  // src/mcp/save-as-component-tool.ts
4004
4045
  var import_editor_canvas8 = require("@elementor/editor-canvas");
4005
- var import_editor_elements16 = require("@elementor/editor-elements");
4046
+ var import_editor_elements17 = require("@elementor/editor-elements");
4006
4047
  var import_editor_mcp = require("@elementor/editor-mcp");
4007
4048
  var import_http_client2 = require("@elementor/http-client");
4008
4049
  var import_schema6 = require("@elementor/schema");
@@ -4040,7 +4081,7 @@ var ERROR_MESSAGES2 = {
4040
4081
  var handleSaveAsComponent = async (params) => {
4041
4082
  const { element_id: elementId, component_name: componentName, overridable_props: overridablePropsInput } = params;
4042
4083
  const validElementTypes = getValidElementTypes();
4043
- const container = (0, import_editor_elements16.getContainer)(elementId);
4084
+ const container = (0, import_editor_elements17.getContainer)(elementId);
4044
4085
  if (!container) {
4045
4086
  throw new Error(ERROR_MESSAGES2.ELEMENT_NOT_FOUND);
4046
4087
  }
@@ -4087,7 +4128,7 @@ function enrichOverridableProps(input, rootElement) {
4087
4128
  }
4088
4129
  const elType = element.elType;
4089
4130
  const widgetType = element.widgetType || element.elType;
4090
- const elementType = (0, import_editor_elements16.getElementType)(widgetType);
4131
+ const elementType = (0, import_editor_elements17.getElementType)(widgetType);
4091
4132
  if (!elementType) {
4092
4133
  throw new Error(
4093
4134
  `Element type "${widgetType}" is not atomic or does not have a settings schema. Cannot expose property "${propKey}" for element "${elementId}".`
@@ -4156,7 +4197,7 @@ function findElementById(root, targetId) {
4156
4197
  return null;
4157
4198
  }
4158
4199
  function getValidElementTypes() {
4159
- const types = (0, import_editor_elements16.getWidgetsCache)();
4200
+ const types = (0, import_editor_elements17.getWidgetsCache)();
4160
4201
  if (!types) {
4161
4202
  return [];
4162
4203
  }
@@ -4334,19 +4375,19 @@ function initMcp() {
4334
4375
 
4335
4376
  // src/populate-store.ts
4336
4377
  var import_react17 = require("react");
4337
- var import_store61 = require("@elementor/store");
4378
+ var import_store63 = require("@elementor/store");
4338
4379
  function PopulateStore() {
4339
4380
  (0, import_react17.useEffect)(() => {
4340
- (0, import_store61.__dispatch)(loadComponents());
4381
+ (0, import_store63.__dispatch)(loadComponents());
4341
4382
  }, []);
4342
4383
  return null;
4343
4384
  }
4344
4385
 
4345
4386
  // src/prevent-circular-nesting.ts
4346
- var import_editor_elements17 = require("@elementor/editor-elements");
4387
+ var import_editor_elements18 = require("@elementor/editor-elements");
4347
4388
  var import_editor_notifications3 = require("@elementor/editor-notifications");
4348
4389
  var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
4349
- var import_store62 = require("@elementor/store");
4390
+ var import_store64 = require("@elementor/store");
4350
4391
  var import_i18n25 = require("@wordpress/i18n");
4351
4392
  var COMPONENT_TYPE = "e-component";
4352
4393
  var COMPONENT_CIRCULAR_NESTING_ALERT = {
@@ -4372,7 +4413,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
4372
4413
  if (componentIdToAdd === void 0) {
4373
4414
  return false;
4374
4415
  }
4375
- const state = (0, import_store62.__getState)();
4416
+ const state = (0, import_store64.__getState)();
4376
4417
  const currentComponentId = selectCurrentComponentId(state);
4377
4418
  const path = selectPath(state);
4378
4419
  if (currentComponentId === null) {
@@ -4438,7 +4479,7 @@ function blockCircularMove(args) {
4438
4479
  if (!container) {
4439
4480
  return false;
4440
4481
  }
4441
- const allElements = (0, import_editor_elements17.getAllDescendants)(container);
4482
+ const allElements = (0, import_editor_elements18.getAllDescendants)(container);
4442
4483
  return allElements.some((element) => {
4443
4484
  const componentId = extractComponentIdFromContainer(element);
4444
4485
  if (componentId === null) {
@@ -4470,19 +4511,19 @@ function blockCircularPaste(args) {
4470
4511
  }
4471
4512
 
4472
4513
  // src/store/actions/remove-component-styles.ts
4473
- var import_store64 = require("@elementor/store");
4514
+ var import_store66 = require("@elementor/store");
4474
4515
  function removeComponentStyles(id2) {
4475
4516
  apiClient.invalidateComponentConfigCache(id2);
4476
- (0, import_store64.__dispatch)(slice.actions.removeStyles({ id: id2 }));
4517
+ (0, import_store66.__dispatch)(slice.actions.removeStyles({ id: id2 }));
4477
4518
  }
4478
4519
 
4479
4520
  // src/store/components-styles-provider.ts
4480
4521
  var import_editor_styles_repository = require("@elementor/editor-styles-repository");
4481
- var import_store66 = require("@elementor/store");
4522
+ var import_store68 = require("@elementor/store");
4482
4523
  var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
4483
4524
  key: "components-styles",
4484
4525
  priority: 100,
4485
- subscribe: (cb) => (0, import_store66.__subscribeWithSelector)(
4526
+ subscribe: (cb) => (0, import_store68.__subscribeWithSelector)(
4486
4527
  (state) => state[SLICE_NAME],
4487
4528
  () => {
4488
4529
  cb();
@@ -4490,29 +4531,29 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
4490
4531
  ),
4491
4532
  actions: {
4492
4533
  all: () => {
4493
- return selectFlatStyles((0, import_store66.__getState)());
4534
+ return selectFlatStyles((0, import_store68.__getState)());
4494
4535
  },
4495
4536
  get: (id2) => {
4496
- return selectFlatStyles((0, import_store66.__getState)()).find((style) => style.id === id2) ?? null;
4537
+ return selectFlatStyles((0, import_store68.__getState)()).find((style) => style.id === id2) ?? null;
4497
4538
  }
4498
4539
  }
4499
4540
  });
4500
4541
 
4501
4542
  // src/sync/create-components-before-save.ts
4502
- var import_editor_elements18 = require("@elementor/editor-elements");
4503
- var import_store68 = require("@elementor/store");
4543
+ var import_editor_elements19 = require("@elementor/editor-elements");
4544
+ var import_store70 = require("@elementor/store");
4504
4545
  async function createComponentsBeforeSave({
4505
4546
  elements,
4506
4547
  status
4507
4548
  }) {
4508
- const unpublishedComponents = selectUnpublishedComponents((0, import_store68.__getState)());
4549
+ const unpublishedComponents = selectUnpublishedComponents((0, import_store70.__getState)());
4509
4550
  if (!unpublishedComponents.length) {
4510
4551
  return;
4511
4552
  }
4512
4553
  try {
4513
4554
  const uidToComponentId = await createComponents(unpublishedComponents, status);
4514
4555
  updateComponentInstances(elements, uidToComponentId);
4515
- (0, import_store68.__dispatch)(
4556
+ (0, import_store70.__dispatch)(
4516
4557
  slice.actions.add(
4517
4558
  unpublishedComponents.map((component) => ({
4518
4559
  id: uidToComponentId.get(component.uid),
@@ -4522,7 +4563,7 @@ async function createComponentsBeforeSave({
4522
4563
  }))
4523
4564
  )
4524
4565
  );
4525
- (0, import_store68.__dispatch)(slice.actions.resetUnpublished());
4566
+ (0, import_store70.__dispatch)(slice.actions.resetUnpublished());
4526
4567
  } catch (error) {
4527
4568
  throw new Error(`Failed to publish components and update component instances: ${error}`);
4528
4569
  }
@@ -4567,7 +4608,7 @@ function shouldUpdateElement(element, uidToComponentId) {
4567
4608
  return { shouldUpdate: false, newComponentId: null };
4568
4609
  }
4569
4610
  function updateElementComponentId(elementId, componentId) {
4570
- (0, import_editor_elements18.updateElementSettings)({
4611
+ (0, import_editor_elements19.updateElementSettings)({
4571
4612
  id: elementId,
4572
4613
  props: {
4573
4614
  component_instance: {
@@ -4582,7 +4623,7 @@ function updateElementComponentId(elementId, componentId) {
4582
4623
  }
4583
4624
 
4584
4625
  // src/sync/set-component-overridable-props-settings-before-save.ts
4585
- var import_store70 = require("@elementor/store");
4626
+ var import_store72 = require("@elementor/store");
4586
4627
  var setComponentOverridablePropsSettingsBeforeSave = ({
4587
4628
  container
4588
4629
  }) => {
@@ -4590,7 +4631,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
4590
4631
  if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
4591
4632
  return;
4592
4633
  }
4593
- const overridableProps = selectOverridableProps((0, import_store70.__getState)(), currentDocument.id);
4634
+ const overridableProps = selectOverridableProps((0, import_store72.__getState)(), currentDocument.id);
4594
4635
  if (overridableProps) {
4595
4636
  container.settings.set("overridable_props", overridableProps);
4596
4637
  }
@@ -4598,7 +4639,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
4598
4639
 
4599
4640
  // src/sync/update-archived-component-before-save.ts
4600
4641
  var import_editor_notifications4 = require("@elementor/editor-notifications");
4601
- var import_store72 = require("@elementor/store");
4642
+ var import_store74 = require("@elementor/store");
4602
4643
  var failedNotification = (message) => ({
4603
4644
  type: "error",
4604
4645
  message: `Failed to archive components: ${message}`,
@@ -4611,7 +4652,7 @@ var successNotification = (message) => ({
4611
4652
  });
4612
4653
  var updateArchivedComponentBeforeSave = async () => {
4613
4654
  try {
4614
- const archivedComponents = selectArchivedComponents((0, import_store72.__getState)());
4655
+ const archivedComponents = selectArchivedComponents((0, import_store74.__getState)());
4615
4656
  if (!archivedComponents.length) {
4616
4657
  return;
4617
4658
  }
@@ -4632,27 +4673,27 @@ var updateArchivedComponentBeforeSave = async () => {
4632
4673
  };
4633
4674
 
4634
4675
  // src/sync/update-component-title-before-save.ts
4635
- var import_store74 = require("@elementor/store");
4676
+ var import_store76 = require("@elementor/store");
4636
4677
  var updateComponentTitleBeforeSave = async () => {
4637
- const updatedComponentNames = selectUpdatedComponentNames((0, import_store74.__getState)());
4678
+ const updatedComponentNames = selectUpdatedComponentNames((0, import_store76.__getState)());
4638
4679
  if (!updatedComponentNames.length) {
4639
4680
  return;
4640
4681
  }
4641
4682
  const result = await apiClient.updateComponentTitle(updatedComponentNames);
4642
4683
  if (result.failedIds.length === 0) {
4643
- (0, import_store74.__dispatch)(slice.actions.cleanUpdatedComponentNames());
4684
+ (0, import_store76.__dispatch)(slice.actions.cleanUpdatedComponentNames());
4644
4685
  }
4645
4686
  };
4646
4687
 
4647
4688
  // src/sync/update-components-before-save.ts
4648
- var import_editor_documents11 = require("@elementor/editor-documents");
4689
+ var import_editor_documents12 = require("@elementor/editor-documents");
4649
4690
  async function updateComponentsBeforeSave({ status, elements }) {
4650
4691
  if (status !== "publish") {
4651
4692
  return;
4652
4693
  }
4653
4694
  const componentIds = await getComponentIds(elements);
4654
4695
  const componentDocumentData = await Promise.all(componentIds.map(getComponentDocumentData));
4655
- const draftIds = componentDocumentData.filter((document) => !!document).filter(import_editor_documents11.isDocumentDirty).map((document) => document.id);
4696
+ const draftIds = componentDocumentData.filter((document) => !!document).filter(import_editor_documents12.isDocumentDirty).map((document) => document.id);
4656
4697
  if (draftIds.length === 0) {
4657
4698
  return;
4658
4699
  }
@@ -4675,14 +4716,14 @@ var beforeSave = ({ container, status }) => {
4675
4716
  // src/init.ts
4676
4717
  function init() {
4677
4718
  import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
4678
- (0, import_store76.__registerSlice)(slice);
4719
+ (0, import_store78.__registerSlice)(slice);
4679
4720
  (0, import_editor_panels4.__registerPanel)(panel);
4680
4721
  (0, import_editor_canvas9.registerElementType)(
4681
4722
  COMPONENT_WIDGET_TYPE,
4682
4723
  (options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
4683
4724
  );
4684
4725
  (0, import_editor_v1_adapters10.registerDataHook)("dependency", "editor/documents/close", (args) => {
4685
- const document = (0, import_editor_documents12.getV1CurrentDocument)();
4726
+ const document = (0, import_editor_documents13.getV1CurrentDocument)();
4686
4727
  if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
4687
4728
  args.mode = "autosave";
4688
4729
  }
@@ -4712,7 +4753,7 @@ function init() {
4712
4753
  component: ComponentPanelHeader
4713
4754
  });
4714
4755
  (0, import_editor_v1_adapters10.registerDataHook)("after", "editor/documents/attach-preview", async () => {
4715
- const { id: id2, config } = (0, import_editor_documents12.getV1CurrentDocument)();
4756
+ const { id: id2, config } = (0, import_editor_documents13.getV1CurrentDocument)();
4716
4757
  if (id2) {
4717
4758
  removeComponentStyles(id2);
4718
4759
  }