@elementor/editor-components 4.0.0-609 → 4.0.0-621

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
@@ -1254,6 +1254,7 @@ function OverrideControl({ overridableProp }) {
1254
1254
  if (!elementType) {
1255
1255
  return null;
1256
1256
  }
1257
+ const settings = (0, import_editor_elements4.getElementSettings)(elementId, Object.keys(elementType.propsSchema));
1257
1258
  const propTypeSchema = (0, import_editor_editing_panel.createTopLevelObjectType)({
1258
1259
  schema: {
1259
1260
  [overridableProp.overrideKey]: propType
@@ -1265,7 +1266,7 @@ function OverrideControl({ overridableProp }) {
1265
1266
  value: componentOverridablePropTypeUtil.extract(matchingOverride) ?? void 0,
1266
1267
  componentInstanceElement
1267
1268
  },
1268
- /* @__PURE__ */ React13.createElement(import_editor_editing_panel.ElementProvider, { element: { id: elementId, type }, elementType }, /* @__PURE__ */ React13.createElement(import_editor_editing_panel.SettingsField, { bind: propKey, propDisplayName: overridableProp.label }, /* @__PURE__ */ React13.createElement(
1269
+ /* @__PURE__ */ React13.createElement(import_editor_editing_panel.ElementProvider, { element: { id: elementId, type }, elementType, settings }, /* @__PURE__ */ React13.createElement(import_editor_editing_panel.SettingsField, { bind: propKey, propDisplayName: overridableProp.label }, /* @__PURE__ */ React13.createElement(
1269
1270
  import_editor_controls2.PropProvider,
1270
1271
  {
1271
1272
  propType: propTypeSchema,
@@ -1411,7 +1412,6 @@ function EditComponentAction({ label, onClick, disabled = false, icon: Icon2 })
1411
1412
 
1412
1413
  // src/components/instance-editing-panel/use-instance-panel-data.ts
1413
1414
  var import_editor_editing_panel4 = require("@elementor/editor-editing-panel");
1414
- var import_editor_elements5 = require("@elementor/editor-elements");
1415
1415
 
1416
1416
  // src/utils/filter-valid-overridable-props.ts
1417
1417
  function filterValidOverridableProps(overridableProps, instanceElementId) {
@@ -1487,11 +1487,11 @@ function useSanitizeOverridableProps(componentId, instanceElementId) {
1487
1487
 
1488
1488
  // src/components/instance-editing-panel/use-instance-panel-data.ts
1489
1489
  function useInstancePanelData() {
1490
- const settings = useComponentInstanceSettings();
1490
+ const { element, settings } = useComponentInstanceSettings();
1491
1491
  const componentId = settings?.component_id?.value;
1492
1492
  const overrides = settings?.overrides?.value;
1493
1493
  const component = useComponent(componentId ?? null);
1494
- const componentInstanceId = (0, import_editor_elements5.useSelectedElement)()?.element?.id;
1494
+ const componentInstanceId = element?.id;
1495
1495
  const overridableProps = useSanitizeOverridableProps(componentId ?? null, componentInstanceId);
1496
1496
  if (!componentId || !overridableProps || !component) {
1497
1497
  return null;
@@ -1502,9 +1502,8 @@ function useInstancePanelData() {
1502
1502
  return { componentId, component, overrides, overridableProps, groups, isEmpty, componentInstanceId };
1503
1503
  }
1504
1504
  function useComponentInstanceSettings() {
1505
- const { element } = (0, import_editor_editing_panel4.useElement)();
1506
- const settings = (0, import_editor_elements5.useElementSetting)(element.id, "component_instance");
1507
- return componentInstancePropTypeUtil.extract(settings);
1505
+ const { element, settings } = (0, import_editor_editing_panel4.useElement)();
1506
+ return { element, settings: componentInstancePropTypeUtil.extract(settings.component_instance) };
1508
1507
  }
1509
1508
 
1510
1509
  // src/components/instance-editing-panel/instance-editing-panel.tsx
@@ -1552,6 +1551,7 @@ var import_editor_documents4 = require("@elementor/editor-documents");
1552
1551
  var import_editor_canvas4 = require("@elementor/editor-canvas");
1553
1552
  var import_editor_documents3 = require("@elementor/editor-documents");
1554
1553
  var import_store18 = require("@elementor/store");
1554
+ var import_utils4 = require("@elementor/utils");
1555
1555
  var import_i18n7 = require("@wordpress/i18n");
1556
1556
 
1557
1557
  // src/utils/format-component-elements-id.ts
@@ -1572,7 +1572,7 @@ function formatComponentElementsId(elements, path) {
1572
1572
 
1573
1573
  // src/utils/switch-to-component.ts
1574
1574
  var import_editor_documents2 = require("@elementor/editor-documents");
1575
- var import_editor_elements6 = require("@elementor/editor-elements");
1575
+ var import_editor_elements5 = require("@elementor/editor-elements");
1576
1576
  var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
1577
1577
  async function switchToComponent(componentId, componentInstanceId, element) {
1578
1578
  const selector = getSelector(element, componentInstanceId);
@@ -1583,10 +1583,10 @@ async function switchToComponent(componentId, componentInstanceId, element) {
1583
1583
  setAsInitial: false,
1584
1584
  shouldScroll: false
1585
1585
  });
1586
- const currentDocumentContainer = (0, import_editor_elements6.getCurrentDocumentContainer)();
1586
+ const currentDocumentContainer = (0, import_editor_elements5.getCurrentDocumentContainer)();
1587
1587
  const topLevelElement = currentDocumentContainer?.children?.[0];
1588
1588
  if (topLevelElement) {
1589
- (0, import_editor_elements6.selectElement)(topLevelElement.id);
1589
+ (0, import_editor_elements5.selectElement)(topLevelElement.id);
1590
1590
  expandNavigator();
1591
1591
  }
1592
1592
  }
@@ -1663,6 +1663,7 @@ var onElementDrop = (_args, element) => {
1663
1663
 
1664
1664
  // src/create-component-type.ts
1665
1665
  var COMPONENT_WIDGET_TYPE = "e-component";
1666
+ var EDIT_COMPONENT_UPGRADE_URL = "https://go.elementor.com/go-pro-components-edit/";
1666
1667
  var updateGroups = (groups, config) => {
1667
1668
  const disableMap = new Map(Object.entries(config.disable ?? {}));
1668
1669
  const addMap = new Map(Object.entries(config.add ?? {}));
@@ -1771,6 +1772,10 @@ function createComponentView(options) {
1771
1772
  }
1772
1773
  _getContextMenuConfig() {
1773
1774
  const isAdministrator = isUserAdministrator();
1775
+ const hasPro = (0, import_utils4.hasProInstalled)();
1776
+ const proLabel = (0, import_i18n7.__)("PRO", "elementor");
1777
+ const badgeClass = "elementor-context-menu-list__item__shortcut__new-badge";
1778
+ const proBadge = `<a href="${EDIT_COMPONENT_UPGRADE_URL}" target="_blank" onclick="event.stopPropagation()" class="${badgeClass}">${proLabel}</a>`;
1774
1779
  const addedGroup = {
1775
1780
  general: {
1776
1781
  index: 1,
@@ -1778,7 +1783,8 @@ function createComponentView(options) {
1778
1783
  name: "edit component",
1779
1784
  icon: "eicon-edit",
1780
1785
  title: () => (0, import_i18n7.__)("Edit Component", "elementor"),
1781
- isEnabled: () => true,
1786
+ ...!hasPro && { shortcut: proBadge, hasShortcutAction: true },
1787
+ isEnabled: () => hasPro,
1782
1788
  callback: (_, eventData) => this.editComponent(eventData)
1783
1789
  }
1784
1790
  }
@@ -1799,7 +1805,8 @@ function createComponentView(options) {
1799
1805
  }
1800
1806
  }
1801
1807
  editComponent({ trigger, location, secondaryLocation }) {
1802
- if (this.isComponentCurrentlyEdited()) {
1808
+ const hasPro = (0, import_utils4.hasProInstalled)();
1809
+ if (!hasPro || this.isComponentCurrentlyEdited()) {
1803
1810
  return;
1804
1811
  }
1805
1812
  this.switchDocument();
@@ -1816,8 +1823,7 @@ function createComponentView(options) {
1816
1823
  }
1817
1824
  handleDblClick(e) {
1818
1825
  e.stopPropagation();
1819
- const isAdministrator = isUserAdministrator();
1820
- if (!isAdministrator) {
1826
+ if (!isUserAdministrator() || !(0, import_utils4.hasProInstalled)()) {
1821
1827
  return;
1822
1828
  }
1823
1829
  const { triggers, locations, secondaryLocations } = this.eventsManagerConfig;
@@ -2127,7 +2133,6 @@ var ComponentIntroduction = ({
2127
2133
  // src/extended/components/component-properties-panel/component-properties-panel.tsx
2128
2134
  var React25 = __toESM(require("react"));
2129
2135
  var import_editor_editing_panel5 = require("@elementor/editor-editing-panel");
2130
- var import_editor_elements9 = require("@elementor/editor-elements");
2131
2136
  var import_editor_panels4 = require("@elementor/editor-panels");
2132
2137
  var import_editor_ui11 = require("@elementor/editor-ui");
2133
2138
  var import_ui21 = require("@elementor/ui");
@@ -2140,7 +2145,7 @@ var import_editor_documents7 = require("@elementor/editor-documents");
2140
2145
  var import_editor_panels3 = require("@elementor/editor-panels");
2141
2146
  var import_icons12 = require("@elementor/icons");
2142
2147
  var import_ui20 = require("@elementor/ui");
2143
- var import_utils5 = require("@elementor/utils");
2148
+ var import_utils6 = require("@elementor/utils");
2144
2149
  var import_i18n16 = require("@wordpress/i18n");
2145
2150
 
2146
2151
  // src/extended/store/actions/add-overridable-group.ts
@@ -2190,7 +2195,7 @@ function addOverridableGroup({
2190
2195
  var import_store28 = require("@elementor/store");
2191
2196
 
2192
2197
  // src/extended/store/utils/groups-transformers.ts
2193
- var import_utils4 = require("@elementor/utils");
2198
+ var import_utils5 = require("@elementor/utils");
2194
2199
  var import_i18n9 = require("@wordpress/i18n");
2195
2200
  function removePropFromAllGroups(groups, propKey) {
2196
2201
  const propKeys = Array.isArray(propKey) ? propKey : [propKey];
@@ -2259,7 +2264,7 @@ function resolveOrCreateGroup(groups, requestedGroupId) {
2259
2264
  return createGroup(groups, requestedGroupId);
2260
2265
  }
2261
2266
  function createGroup(groups, groupId, label) {
2262
- const newGroupId = groupId || (0, import_utils4.generateUniqueId)("group");
2267
+ const newGroupId = groupId || (0, import_utils5.generateUniqueId)("group");
2263
2268
  const newLabel = label || (0, import_i18n9.__)("Default", "elementor");
2264
2269
  return {
2265
2270
  groups: {
@@ -2361,9 +2366,9 @@ function deleteOverridableGroup({ componentId, groupId }) {
2361
2366
  var import_store30 = require("@elementor/store");
2362
2367
 
2363
2368
  // src/extended/utils/revert-overridable-settings.ts
2364
- var import_editor_elements7 = require("@elementor/editor-elements");
2369
+ var import_editor_elements6 = require("@elementor/editor-elements");
2365
2370
  function revertElementOverridableSetting(elementId, settingKey, originValue, overrideKey) {
2366
- const container = (0, import_editor_elements7.getContainer)(elementId);
2371
+ const container = (0, import_editor_elements6.getContainer)(elementId);
2367
2372
  if (!container) {
2368
2373
  return;
2369
2374
  }
@@ -2371,14 +2376,14 @@ function revertElementOverridableSetting(elementId, settingKey, originValue, ove
2371
2376
  revertComponentInstanceOverridableSetting(elementId, overrideKey);
2372
2377
  return;
2373
2378
  }
2374
- (0, import_editor_elements7.updateElementSettings)({
2379
+ (0, import_editor_elements6.updateElementSettings)({
2375
2380
  id: elementId,
2376
2381
  props: { [settingKey]: originValue ?? null },
2377
2382
  withHistory: false
2378
2383
  });
2379
2384
  }
2380
2385
  function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
2381
- const setting = (0, import_editor_elements7.getElementSetting)(elementId, "component_instance");
2386
+ const setting = (0, import_editor_elements6.getElementSetting)(elementId, "component_instance");
2382
2387
  const componentInstance = componentInstancePropTypeUtil.extract(setting);
2383
2388
  const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
2384
2389
  if (!overrides?.length) {
@@ -2389,7 +2394,7 @@ function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
2389
2394
  ...componentInstance,
2390
2395
  overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
2391
2396
  });
2392
- (0, import_editor_elements7.updateElementSettings)({
2397
+ (0, import_editor_elements6.updateElementSettings)({
2393
2398
  id: elementId,
2394
2399
  props: { component_instance: updatedSetting },
2395
2400
  withHistory: false
@@ -2454,7 +2459,7 @@ function revertComponentInstanceSettings(settings) {
2454
2459
  };
2455
2460
  }
2456
2461
  function revertAllOverridablesInContainer(container) {
2457
- (0, import_editor_elements7.getAllDescendants)(container).forEach((element) => {
2462
+ (0, import_editor_elements6.getAllDescendants)(container).forEach((element) => {
2458
2463
  if (element.model.get("widgetType") === COMPONENT_WIDGET_TYPE) {
2459
2464
  revertComponentInstanceOverridesInElement(element);
2460
2465
  } else {
@@ -2474,7 +2479,7 @@ function revertComponentInstanceOverridesInElement(element) {
2474
2479
  ...componentInstance,
2475
2480
  overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
2476
2481
  });
2477
- (0, import_editor_elements7.updateElementSettings)({
2482
+ (0, import_editor_elements6.updateElementSettings)({
2478
2483
  id: element.id,
2479
2484
  props: { component_instance: updatedSetting },
2480
2485
  withHistory: false
@@ -2486,7 +2491,7 @@ function revertElementSettings(element) {
2486
2491
  if (!hasChanges) {
2487
2492
  return;
2488
2493
  }
2489
- (0, import_editor_elements7.updateElementSettings)({
2494
+ (0, import_editor_elements6.updateElementSettings)({
2490
2495
  id: element.id,
2491
2496
  props: revertedSettings,
2492
2497
  withHistory: false
@@ -2683,7 +2688,7 @@ var import_i18n13 = require("@wordpress/i18n");
2683
2688
 
2684
2689
  // src/extended/components/component-properties-panel/property-item.tsx
2685
2690
  var React22 = __toESM(require("react"));
2686
- var import_editor_elements8 = require("@elementor/editor-elements");
2691
+ var import_editor_elements7 = require("@elementor/editor-elements");
2687
2692
  var import_icons10 = require("@elementor/icons");
2688
2693
  var import_ui18 = require("@elementor/ui");
2689
2694
 
@@ -2956,7 +2961,7 @@ function PropertyItem({
2956
2961
  }
2957
2962
  function getElementIcon(prop) {
2958
2963
  const elType = prop.elType === "widget" ? prop.widgetType : prop.elType;
2959
- const widgetsCache = (0, import_editor_elements8.getWidgetsCache)();
2964
+ const widgetsCache = (0, import_editor_elements7.getWidgetsCache)();
2960
2965
  if (!widgetsCache) {
2961
2966
  return "eicon-apps";
2962
2967
  }
@@ -3247,7 +3252,7 @@ function ComponentPropertiesPanelContent({ onClose }) {
3247
3252
  if (isAddingGroup) {
3248
3253
  return;
3249
3254
  }
3250
- const newGroupId = (0, import_utils5.generateUniqueId)("group");
3255
+ const newGroupId = (0, import_utils6.generateUniqueId)("group");
3251
3256
  const newLabel = generateUniqueLabel(groups);
3252
3257
  addOverridableGroup({
3253
3258
  componentId: currentComponentId,
@@ -3327,13 +3332,9 @@ var { panel, usePanelActions } = (0, import_editor_panels4.__createPanel)({
3327
3332
  component: ComponentPropertiesPanel
3328
3333
  });
3329
3334
  function ComponentPropertiesPanel() {
3330
- const { element, elementType } = (0, import_editor_elements9.useSelectedElement)();
3331
3335
  const { close: closePanel } = usePanelActions();
3332
3336
  const { open: openEditingPanel } = (0, import_editor_editing_panel5.usePanelActions)();
3333
- if (!element || !elementType) {
3334
- return null;
3335
- }
3336
- return /* @__PURE__ */ React25.createElement(import_editor_ui11.ThemeProvider, null, /* @__PURE__ */ React25.createElement(import_ui21.ErrorBoundary, { fallback: /* @__PURE__ */ React25.createElement(ErrorBoundaryFallback, null) }, /* @__PURE__ */ React25.createElement(import_editor_editing_panel5.ElementProvider, { element, elementType }, /* @__PURE__ */ React25.createElement(import_editor_panels4.Panel, null, /* @__PURE__ */ React25.createElement(
3337
+ return /* @__PURE__ */ React25.createElement(import_editor_ui11.ThemeProvider, null, /* @__PURE__ */ React25.createElement(import_ui21.ErrorBoundary, { fallback: /* @__PURE__ */ React25.createElement(ErrorBoundaryFallback, null) }, /* @__PURE__ */ React25.createElement(import_editor_panels4.Panel, null, /* @__PURE__ */ React25.createElement(
3337
3338
  ComponentPropertiesPanelContent,
3338
3339
  {
3339
3340
  onClose: () => {
@@ -3341,7 +3342,7 @@ function ComponentPropertiesPanel() {
3341
3342
  openEditingPanel();
3342
3343
  }
3343
3344
  }
3344
- )))));
3345
+ ))));
3345
3346
  }
3346
3347
  var ErrorBoundaryFallback = () => /* @__PURE__ */ React25.createElement(import_ui21.Box, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React25.createElement(import_ui21.Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React25.createElement("strong", null, (0, import_i18n17.__)("Something went wrong", "elementor"))));
3347
3348
 
@@ -3479,7 +3480,7 @@ var import_ui25 = require("@elementor/ui");
3479
3480
  var React29 = __toESM(require("react"));
3480
3481
  var import_react13 = require("react");
3481
3482
  var import_editor_canvas5 = require("@elementor/editor-canvas");
3482
- var import_editor_elements12 = require("@elementor/editor-elements");
3483
+ var import_editor_elements10 = require("@elementor/editor-elements");
3483
3484
  var import_editor_ui14 = require("@elementor/editor-ui");
3484
3485
  var import_icons15 = require("@elementor/icons");
3485
3486
  var import_ui24 = require("@elementor/ui");
@@ -3504,7 +3505,7 @@ var archiveComponent = (componentId, componentName) => {
3504
3505
 
3505
3506
  // src/extended/store/actions/rename-component.ts
3506
3507
  var import_editor_documents10 = require("@elementor/editor-documents");
3507
- var import_editor_elements10 = require("@elementor/editor-elements");
3508
+ var import_editor_elements8 = require("@elementor/editor-elements");
3508
3509
  var import_store46 = require("@elementor/store");
3509
3510
  var TITLE_EXTERNAL_CHANGE_COMMAND = "title_external_change";
3510
3511
  var renameComponent = (componentUid, newName) => {
@@ -3527,7 +3528,7 @@ function getDocumentContainer() {
3527
3528
  return documentsManager?.getCurrent()?.container;
3528
3529
  }
3529
3530
  function findComponentInstancesByUid(documentContainer, componentUid) {
3530
- const allDescendants = (0, import_editor_elements10.getAllDescendants)(documentContainer);
3531
+ const allDescendants = (0, import_editor_elements8.getAllDescendants)(documentContainer);
3531
3532
  return allDescendants.filter((element) => {
3532
3533
  const widgetType = element.model.get("widgetType");
3533
3534
  const editorSettings = element.model.get("editor_settings");
@@ -3605,9 +3606,9 @@ var createComponentModel2 = (component) => {
3605
3606
  };
3606
3607
 
3607
3608
  // src/extended/utils/get-container-for-new-element.ts
3608
- var import_editor_elements11 = require("@elementor/editor-elements");
3609
+ var import_editor_elements9 = require("@elementor/editor-elements");
3609
3610
  var getContainerForNewElement = () => {
3610
- const currentDocumentContainer = (0, import_editor_elements11.getCurrentDocumentContainer)();
3611
+ const currentDocumentContainer = (0, import_editor_elements9.getCurrentDocumentContainer)();
3611
3612
  const selectedElement = getSelectedElementContainer();
3612
3613
  let container, options;
3613
3614
  if (selectedElement) {
@@ -3633,11 +3634,11 @@ var getContainerForNewElement = () => {
3633
3634
  return { container: container ?? currentDocumentContainer, options };
3634
3635
  };
3635
3636
  function getSelectedElementContainer() {
3636
- const selectedElements = (0, import_editor_elements11.getSelectedElements)();
3637
+ const selectedElements = (0, import_editor_elements9.getSelectedElements)();
3637
3638
  if (selectedElements.length !== 1) {
3638
3639
  return void 0;
3639
3640
  }
3640
- return (0, import_editor_elements11.getContainer)(selectedElements[0].id);
3641
+ return (0, import_editor_elements9.getContainer)(selectedElements[0].id);
3641
3642
  }
3642
3643
 
3643
3644
  // src/extended/components/components-tab/delete-confirmation-dialog.tsx
@@ -3774,7 +3775,7 @@ var addComponentToPage = (model) => {
3774
3775
  throw new Error(`Can't find container to drop new component instance at`);
3775
3776
  }
3776
3777
  loadComponentsAssets([model]);
3777
- (0, import_editor_elements12.dropElement)({
3778
+ (0, import_editor_elements10.dropElement)({
3778
3779
  containerId: container.id,
3779
3780
  model,
3780
3781
  options: { ...options, useHistory: false, scrollIntoView: true }
@@ -3812,7 +3813,7 @@ var ExtendedComponents = () => {
3812
3813
  // src/extended/components/create-component-form/create-component-form.tsx
3813
3814
  var React31 = __toESM(require("react"));
3814
3815
  var import_react15 = require("react");
3815
- var import_editor_elements16 = require("@elementor/editor-elements");
3816
+ var import_editor_elements14 = require("@elementor/editor-elements");
3816
3817
  var import_editor_notifications3 = require("@elementor/editor-notifications");
3817
3818
  var import_editor_ui16 = require("@elementor/editor-ui");
3818
3819
  var import_icons16 = require("@elementor/icons");
@@ -3821,16 +3822,16 @@ var import_ui26 = require("@elementor/ui");
3821
3822
  var import_i18n26 = require("@wordpress/i18n");
3822
3823
 
3823
3824
  // src/extended/store/actions/create-unpublished-component.ts
3824
- var import_editor_elements14 = require("@elementor/editor-elements");
3825
+ var import_editor_elements12 = require("@elementor/editor-elements");
3825
3826
  var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
3826
3827
  var import_store50 = require("@elementor/store");
3827
- var import_utils6 = require("@elementor/utils");
3828
+ var import_utils7 = require("@elementor/utils");
3828
3829
  var import_i18n24 = require("@wordpress/i18n");
3829
3830
 
3830
3831
  // src/extended/utils/replace-element-with-component.ts
3831
- var import_editor_elements13 = require("@elementor/editor-elements");
3832
+ var import_editor_elements11 = require("@elementor/editor-elements");
3832
3833
  var replaceElementWithComponent = async (element, component) => {
3833
- return await (0, import_editor_elements13.replaceElement)({
3834
+ return await (0, import_editor_elements11.replaceElement)({
3834
3835
  currentElement: element,
3835
3836
  newElement: createComponentModel2(component),
3836
3837
  withHistory: false
@@ -3846,10 +3847,10 @@ async function createUnpublishedComponent({
3846
3847
  overridableProps,
3847
3848
  source
3848
3849
  }) {
3849
- const generatedUid = uid ?? (0, import_utils6.generateUniqueId)("component");
3850
+ const generatedUid = uid ?? (0, import_utils7.generateUniqueId)("component");
3850
3851
  const componentBase = { uid: generatedUid, name };
3851
3852
  const elementDataWithOverridablesReverted = revertAllOverridablesInElementData(element);
3852
- const container = (0, import_editor_elements14.getContainer)(element.id);
3853
+ const container = (0, import_editor_elements12.getContainer)(element.id);
3853
3854
  const modelFromContainer = container?.model?.toJSON?.();
3854
3855
  const originalElement = {
3855
3856
  model: modelFromContainer ?? element,
@@ -3883,16 +3884,16 @@ async function createUnpublishedComponent({
3883
3884
  return { uid: generatedUid, instanceId: componentInstance.id };
3884
3885
  }
3885
3886
  function restoreOriginalElement(originalElement, componentInstanceId) {
3886
- const componentContainer = (0, import_editor_elements14.getContainer)(componentInstanceId);
3887
+ const componentContainer = (0, import_editor_elements12.getContainer)(componentInstanceId);
3887
3888
  if (componentContainer) {
3888
- (0, import_editor_elements14.deleteElement)({ container: componentContainer, options: { useHistory: false } });
3889
+ (0, import_editor_elements12.deleteElement)({ container: componentContainer, options: { useHistory: false } });
3889
3890
  }
3890
- const parentContainer = (0, import_editor_elements14.getContainer)(originalElement.parentId);
3891
+ const parentContainer = (0, import_editor_elements12.getContainer)(originalElement.parentId);
3891
3892
  if (!parentContainer) {
3892
3893
  return;
3893
3894
  }
3894
3895
  const clonedModel = structuredClone(originalElement.model);
3895
- (0, import_editor_elements14.createElements)({
3896
+ (0, import_editor_elements12.createElements)({
3896
3897
  title: (0, import_i18n24.__)("Restore Element", "elementor"),
3897
3898
  elements: [
3898
3899
  {
@@ -3906,7 +3907,7 @@ function restoreOriginalElement(originalElement, componentInstanceId) {
3906
3907
 
3907
3908
  // src/extended/sync/prevent-non-atomic-nesting.ts
3908
3909
  var import_editor_canvas6 = require("@elementor/editor-canvas");
3909
- var import_editor_elements15 = require("@elementor/editor-elements");
3910
+ var import_editor_elements13 = require("@elementor/editor-elements");
3910
3911
  var import_editor_notifications2 = require("@elementor/editor-notifications");
3911
3912
  var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
3912
3913
  var import_i18n25 = require("@wordpress/i18n");
@@ -3942,7 +3943,7 @@ function initNonAtomicNestingPrevention() {
3942
3943
  });
3943
3944
  }
3944
3945
  function isElementAtomic(elementType) {
3945
- return (0, import_editor_elements15.getElementType)(elementType) !== null;
3946
+ return (0, import_editor_elements13.getElementType)(elementType) !== null;
3946
3947
  }
3947
3948
  function blockNonAtomicCreate(args) {
3948
3949
  if (!isEditingComponent()) {
@@ -3968,7 +3969,7 @@ function blockNonAtomicMove(args) {
3968
3969
  if (!container) {
3969
3970
  return false;
3970
3971
  }
3971
- const allElements = (0, import_editor_elements15.getAllDescendants)(container);
3972
+ const allElements = (0, import_editor_elements13.getAllDescendants)(container);
3972
3973
  return allElements.some((element) => !(0, import_editor_canvas6.isAtomicWidget)(element));
3973
3974
  });
3974
3975
  if (hasNonAtomicElement) {
@@ -4115,7 +4116,7 @@ function CreateComponentForm() {
4115
4116
  (0, import_editor_notifications3.notify)(notification);
4116
4117
  return;
4117
4118
  }
4118
- setElement({ element: event.detail.element, elementLabel: (0, import_editor_elements16.getElementLabel)(event.detail.element.id) });
4119
+ setElement({ element: event.detail.element, elementLabel: (0, import_editor_elements14.getElementLabel)(event.detail.element.id) });
4119
4120
  setAnchorPosition(event.detail.anchorPosition);
4120
4121
  eventData.current = getComponentEventData(event.detail.element, event.detail.options);
4121
4122
  trackComponentEvent({
@@ -4290,7 +4291,7 @@ var import_react18 = require("react");
4290
4291
  var import_editor_documents11 = require("@elementor/editor-documents");
4291
4292
  var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
4292
4293
  var import_store60 = require("@elementor/store");
4293
- var import_utils8 = require("@elementor/utils");
4294
+ var import_utils9 = require("@elementor/utils");
4294
4295
 
4295
4296
  // src/extended/consts.ts
4296
4297
  var OVERRIDABLE_PROP_REPLACEMENT_ID = "overridable-prop";
@@ -4330,10 +4331,10 @@ function useCanvasDocument() {
4330
4331
 
4331
4332
  // src/extended/components/edit-component/use-element-rect.ts
4332
4333
  var import_react16 = require("react");
4333
- var import_utils7 = require("@elementor/utils");
4334
+ var import_utils8 = require("@elementor/utils");
4334
4335
  function useElementRect(element) {
4335
4336
  const [rect, setRect] = (0, import_react16.useState)(new DOMRect(0, 0, 0, 0));
4336
- const onChange = (0, import_utils7.throttle)(
4337
+ const onChange = (0, import_utils8.throttle)(
4337
4338
  () => {
4338
4339
  setRect(element?.getBoundingClientRect() ?? new DOMRect(0, 0, 0, 0));
4339
4340
  },
@@ -4494,7 +4495,7 @@ function EditComponent() {
4494
4495
  const currentComponentId = useCurrentComponentId();
4495
4496
  useHandleDocumentSwitches();
4496
4497
  const navigateBack = useNavigateBack();
4497
- const onClose = (0, import_utils8.throttle)(navigateBack, 100);
4498
+ const onClose = (0, import_utils9.throttle)(navigateBack, 100);
4498
4499
  const topLevelElementDom = useComponentDOMElement(currentComponentId ?? void 0);
4499
4500
  if (!currentComponentId) {
4500
4501
  return null;
@@ -4713,13 +4714,13 @@ function ControlWithReplacements({
4713
4714
  var React37 = __toESM(require("react"));
4714
4715
  var import_editor_controls6 = require("@elementor/editor-controls");
4715
4716
  var import_editor_editing_panel7 = require("@elementor/editor-editing-panel");
4716
- var import_editor_elements17 = require("@elementor/editor-elements");
4717
+ var import_editor_elements15 = require("@elementor/editor-elements");
4717
4718
  var import_ui29 = require("@elementor/ui");
4718
4719
  var import_i18n30 = require("@wordpress/i18n");
4719
4720
 
4720
4721
  // src/extended/store/actions/set-overridable-prop.ts
4721
4722
  var import_store63 = require("@elementor/store");
4722
- var import_utils9 = require("@elementor/utils");
4723
+ var import_utils10 = require("@elementor/utils");
4723
4724
  function setOverridableProp({
4724
4725
  componentId,
4725
4726
  overrideKey,
@@ -4746,7 +4747,7 @@ function setOverridableProp({
4746
4747
  groupId || existingOverridableProp?.groupId || void 0
4747
4748
  );
4748
4749
  const overridableProp = {
4749
- overrideKey: existingOverridableProp?.overrideKey || (0, import_utils9.generateUniqueId)("prop"),
4750
+ overrideKey: existingOverridableProp?.overrideKey || (0, import_utils10.generateUniqueId)("prop"),
4750
4751
  label,
4751
4752
  elementId,
4752
4753
  propKey,
@@ -4895,7 +4896,7 @@ function Content2({ componentId, overridableProps }) {
4895
4896
  });
4896
4897
  const triggerProps = (0, import_ui29.bindTrigger)(popupState);
4897
4898
  const popoverProps = (0, import_ui29.bindPopover)(popupState);
4898
- const { elType } = (0, import_editor_elements17.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
4899
+ const { elType } = (0, import_editor_elements15.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
4899
4900
  const handleSubmit = ({ label, group }) => {
4900
4901
  const propTypeDefault = propType.default ?? {};
4901
4902
  const originValue = resolveOverridePropValue(overridableValue?.origin_value) ?? value ?? propTypeDefault;
@@ -4962,11 +4963,11 @@ var import_editor_mcp2 = require("@elementor/editor-mcp");
4962
4963
 
4963
4964
  // src/extended/mcp/save-as-component-tool.ts
4964
4965
  var import_editor_canvas7 = require("@elementor/editor-canvas");
4965
- var import_editor_elements18 = require("@elementor/editor-elements");
4966
+ var import_editor_elements16 = require("@elementor/editor-elements");
4966
4967
  var import_editor_mcp = require("@elementor/editor-mcp");
4967
4968
  var import_http_client2 = require("@elementor/http-client");
4968
4969
  var import_schema6 = require("@elementor/schema");
4969
- var import_utils10 = require("@elementor/utils");
4970
+ var import_utils11 = require("@elementor/utils");
4970
4971
  var InputSchema = {
4971
4972
  element_id: import_schema6.z.string().describe(
4972
4973
  'The unique identifier of the element to save as a component. Use the "list-elements" tool to find available element IDs in the current document.'
@@ -5007,7 +5008,7 @@ var handleSaveAsComponent = async (params) => {
5007
5008
  overridable_props: overridablePropsInput
5008
5009
  } = params;
5009
5010
  const validElementTypes = getValidElementTypes();
5010
- const container = (0, import_editor_elements18.getContainer)(elementId);
5011
+ const container = (0, import_editor_elements16.getContainer)(elementId);
5011
5012
  if (!container) {
5012
5013
  throw new Error(ERROR_MESSAGES3.ELEMENT_NOT_FOUND);
5013
5014
  }
@@ -5021,7 +5022,7 @@ var handleSaveAsComponent = async (params) => {
5021
5022
  }
5022
5023
  const groupsWithDefaultGroup = groups.indexOf("Default") >= 0 ? [...groups] : ["Default", ...groups];
5023
5024
  const propertyGroups = groupsWithDefaultGroup.map((groupName) => ({
5024
- id: (0, import_utils10.generateUniqueId)("group"),
5025
+ id: (0, import_utils11.generateUniqueId)("group"),
5025
5026
  label: groupName,
5026
5027
  props: []
5027
5028
  }));
@@ -5029,7 +5030,7 @@ var handleSaveAsComponent = async (params) => {
5029
5030
  if (overridableProps) {
5030
5031
  updateElementDataWithOverridableProps(element, overridableProps);
5031
5032
  }
5032
- const uid = (0, import_utils10.generateUniqueId)("component");
5033
+ const uid = (0, import_utils11.generateUniqueId)("component");
5033
5034
  try {
5034
5035
  await apiClient.validate({
5035
5036
  items: [
@@ -5073,7 +5074,7 @@ function enrichOverridableProps(input, rootElement, propertGroups) {
5073
5074
  }
5074
5075
  const elType = element.elType;
5075
5076
  const widgetType = element.widgetType || element.elType;
5076
- const elementType = (0, import_editor_elements18.getElementType)(widgetType);
5077
+ const elementType = (0, import_editor_elements16.getElementType)(widgetType);
5077
5078
  if (!elementType) {
5078
5079
  throw new Error(
5079
5080
  `Element type "${widgetType}" is not atomic or does not have a settings schema. Cannot expose property "${propKey}" for element "${elementId}".`
@@ -5085,7 +5086,7 @@ function enrichOverridableProps(input, rootElement, propertGroups) {
5085
5086
  `Property "${propKey}" does not exist in element "${elementId}" (type: ${widgetType}). Available properties: ${availableProps}`
5086
5087
  );
5087
5088
  }
5088
- const overrideKey = (0, import_utils10.generateUniqueId)("prop");
5089
+ const overrideKey = (0, import_utils11.generateUniqueId)("prop");
5089
5090
  const originValue = element.settings?.[propKey] ? element.settings[propKey] : elementType.propsSchema[propKey].default ?? null;
5090
5091
  if (!enrichedGroups[targetGroupId]) {
5091
5092
  enrichedGroups[targetGroupId] = {
@@ -5144,7 +5145,7 @@ function findElementById(root, targetId) {
5144
5145
  return null;
5145
5146
  }
5146
5147
  function getValidElementTypes() {
5147
- const types = (0, import_editor_elements18.getWidgetsCache)();
5148
+ const types = (0, import_editor_elements16.getWidgetsCache)();
5148
5149
  if (!types) {
5149
5150
  return [];
5150
5151
  }
@@ -5391,7 +5392,7 @@ var updateComponentTitleBeforeSave = async (status) => {
5391
5392
  };
5392
5393
 
5393
5394
  // src/extended/sync/create-components-before-save.ts
5394
- var import_editor_elements19 = require("@elementor/editor-elements");
5395
+ var import_editor_elements17 = require("@elementor/editor-elements");
5395
5396
  var import_store72 = require("@elementor/store");
5396
5397
  async function createComponentsBeforeSave({
5397
5398
  elements,
@@ -5461,7 +5462,7 @@ function shouldUpdateElement(element, uidToComponentId) {
5461
5462
  return { shouldUpdate: false, newComponentId: null };
5462
5463
  }
5463
5464
  function updateElementComponentId(elementId, componentId) {
5464
- (0, import_editor_elements19.updateElementSettings)({
5465
+ (0, import_editor_elements17.updateElementSettings)({
5465
5466
  id: elementId,
5466
5467
  props: {
5467
5468
  component_instance: {
@@ -5497,7 +5498,7 @@ var updateExistingComponentsBeforeSave = async ({
5497
5498
  };
5498
5499
 
5499
5500
  // src/extended/sync/cleanup-overridable-props-on-delete.ts
5500
- var import_editor_elements20 = require("@elementor/editor-elements");
5501
+ var import_editor_elements18 = require("@elementor/editor-elements");
5501
5502
  var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
5502
5503
  var import_store74 = require("@elementor/store");
5503
5504
  function initCleanupOverridablePropsOnDelete() {
@@ -5534,7 +5535,7 @@ function initCleanupOverridablePropsOnDelete() {
5534
5535
  });
5535
5536
  }
5536
5537
  function collectDeletedElementIds(containers) {
5537
- const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0, import_editor_elements20.getAllDescendants)(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
5538
+ const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0, import_editor_elements18.getAllDescendants)(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
5538
5539
  return elementIds;
5539
5540
  }
5540
5541
  function isPartOfMoveCommand(options) {
@@ -5543,7 +5544,7 @@ function isPartOfMoveCommand(options) {
5543
5544
  }
5544
5545
 
5545
5546
  // src/extended/sync/handle-component-edit-mode-container.ts
5546
- var import_editor_elements21 = require("@elementor/editor-elements");
5547
+ var import_editor_elements19 = require("@elementor/editor-elements");
5547
5548
  var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
5548
5549
  var V4_DEFAULT_CONTAINER_TYPE = "e-flexbox";
5549
5550
  function initHandleComponentEditModeContainer() {
@@ -5593,11 +5594,11 @@ function initRedirectDropIntoComponent() {
5593
5594
  });
5594
5595
  }
5595
5596
  function createEmptyTopLevelContainer(container) {
5596
- const newContainer = (0, import_editor_elements21.createElement)({
5597
+ const newContainer = (0, import_editor_elements19.createElement)({
5597
5598
  container,
5598
5599
  model: { elType: V4_DEFAULT_CONTAINER_TYPE }
5599
5600
  });
5600
- (0, import_editor_elements21.selectElement)(newContainer.id);
5601
+ (0, import_editor_elements19.selectElement)(newContainer.id);
5601
5602
  }
5602
5603
  function getComponentContainer(container) {
5603
5604
  const topLevelElement = container.children?.[0];
@@ -5749,7 +5750,7 @@ function PopulateStore() {
5749
5750
  }
5750
5751
 
5751
5752
  // src/prevent-circular-nesting.ts
5752
- var import_editor_elements22 = require("@elementor/editor-elements");
5753
+ var import_editor_elements20 = require("@elementor/editor-elements");
5753
5754
  var import_editor_notifications5 = require("@elementor/editor-notifications");
5754
5755
  var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
5755
5756
  var import_store80 = require("@elementor/store");
@@ -5844,7 +5845,7 @@ function blockCircularMove(args) {
5844
5845
  if (!container) {
5845
5846
  return false;
5846
5847
  }
5847
- const allElements = (0, import_editor_elements22.getAllDescendants)(container);
5848
+ const allElements = (0, import_editor_elements20.getAllDescendants)(container);
5848
5849
  return allElements.some((element) => {
5849
5850
  const componentId = extractComponentIdFromContainer(element);
5850
5851
  if (componentId === null) {