@elementor/editor-components 3.35.0-341 → 3.35.0-343

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
@@ -38,12 +38,12 @@ module.exports = __toCommonJS(index_exports);
38
38
  var import_editor = require("@elementor/editor");
39
39
  var import_editor_canvas6 = require("@elementor/editor-canvas");
40
40
  var import_editor_documents10 = require("@elementor/editor-documents");
41
- var import_editor_editing_panel3 = require("@elementor/editor-editing-panel");
41
+ var import_editor_editing_panel5 = require("@elementor/editor-editing-panel");
42
42
  var import_editor_elements_panel = require("@elementor/editor-elements-panel");
43
43
  var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
44
- var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
45
- var import_store48 = require("@elementor/store");
46
- var import_i18n15 = require("@wordpress/i18n");
44
+ var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
45
+ var import_store50 = require("@elementor/store");
46
+ var import_i18n17 = require("@wordpress/i18n");
47
47
 
48
48
  // src/component-instance-transformer.ts
49
49
  var import_editor_canvas = require("@elementor/editor-canvas");
@@ -309,27 +309,31 @@ var import_i18n2 = require("@wordpress/i18n");
309
309
  // src/hooks/use-navigate-back.ts
310
310
  var import_react = require("react");
311
311
  var import_editor_documents2 = require("@elementor/editor-documents");
312
- var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
313
312
  var import_store5 = require("@elementor/store");
313
+
314
+ // src/utils/switch-to-component.ts
315
+ var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
316
+ function switchToComponent(componentId, componentInstanceId) {
317
+ (0, import_editor_v1_adapters2.__privateRunCommand)("editor/documents/switch", {
318
+ id: componentId,
319
+ selector: componentInstanceId ? `[data-id="${componentInstanceId}"]` : void 0,
320
+ mode: "autosave",
321
+ setAsInitial: false,
322
+ shouldScroll: false
323
+ });
324
+ }
325
+
326
+ // src/hooks/use-navigate-back.ts
314
327
  function useNavigateBack() {
315
328
  const path = (0, import_store5.__useSelector)(selectPath);
316
329
  const documentsManager = (0, import_editor_documents2.getV1DocumentsManager)();
317
330
  return (0, import_react.useCallback)(() => {
318
331
  const { componentId: prevComponentId, instanceId: prevComponentInstanceId } = path.at(-2) ?? {};
319
- const switchToDocument = (id, selector) => {
320
- (0, import_editor_v1_adapters2.__privateRunCommand)("editor/documents/switch", {
321
- id,
322
- selector,
323
- mode: "autosave",
324
- setAsInitial: false,
325
- shouldScroll: false
326
- });
327
- };
328
332
  if (prevComponentId && prevComponentInstanceId) {
329
- switchToDocument(prevComponentId, `[data-id="${prevComponentInstanceId}"]`);
333
+ switchToComponent(prevComponentId, prevComponentInstanceId);
330
334
  return;
331
335
  }
332
- switchToDocument(documentsManager.getInitialId());
336
+ switchToComponent(documentsManager.getInitialId());
333
337
  }, [path, documentsManager]);
334
338
  }
335
339
 
@@ -517,7 +521,6 @@ var import_editor_documents6 = require("@elementor/editor-documents");
517
521
  // src/create-component-type.ts
518
522
  var import_editor_canvas3 = require("@elementor/editor-canvas");
519
523
  var import_editor_documents5 = require("@elementor/editor-documents");
520
- var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
521
524
  var import_i18n4 = require("@wordpress/i18n");
522
525
 
523
526
  // src/utils/tracking.ts
@@ -655,12 +658,7 @@ function createComponentView(options) {
655
658
  if (!isAllowedToSwitchDocument) {
656
659
  options.showLockedByModal?.(lockedBy || "");
657
660
  } else {
658
- (0, import_editor_v1_adapters3.__privateRunCommand)("editor/documents/switch", {
659
- id: this.getComponentId(),
660
- mode: "autosave",
661
- selector: `[data-id="${this.model.get("id")}"]`,
662
- shouldScroll: false
663
- });
661
+ switchToComponent(this.getComponentId(), this.model.get("id"));
664
662
  }
665
663
  }
666
664
  editComponent({ trigger, location, secondaryLocation }) {
@@ -1112,7 +1110,7 @@ var import_ui7 = require("@elementor/ui");
1112
1110
  var import_i18n8 = require("@wordpress/i18n");
1113
1111
 
1114
1112
  // src/store/actions/create-unpublished-component.ts
1115
- var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
1113
+ var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
1116
1114
  var import_store21 = require("@elementor/store");
1117
1115
  var import_utils2 = require("@elementor/utils");
1118
1116
  function createUnpublishedComponent(name, element, eventData) {
@@ -1132,7 +1130,7 @@ function createUnpublishedComponent(name, element, eventData) {
1132
1130
  component_name: name,
1133
1131
  ...eventData
1134
1132
  });
1135
- (0, import_editor_v1_adapters4.__privateRunCommand)("document/save/auto");
1133
+ (0, import_editor_v1_adapters3.__privateRunCommand)("document/save/auto");
1136
1134
  return uid;
1137
1135
  }
1138
1136
 
@@ -1383,7 +1381,7 @@ var Form = ({
1383
1381
  var React11 = __toESM(require("react"));
1384
1382
  var import_react8 = require("react");
1385
1383
  var import_editor_documents8 = require("@elementor/editor-documents");
1386
- var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
1384
+ var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
1387
1385
  var import_store25 = require("@elementor/store");
1388
1386
 
1389
1387
  // src/store/actions/update-current-component.ts
@@ -1409,9 +1407,9 @@ var import_i18n9 = require("@wordpress/i18n");
1409
1407
 
1410
1408
  // src/hooks/use-canvas-document.ts
1411
1409
  var import_editor_canvas5 = require("@elementor/editor-canvas");
1412
- var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
1410
+ var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
1413
1411
  function useCanvasDocument() {
1414
- return (0, import_editor_v1_adapters5.__privateUseListenTo)((0, import_editor_v1_adapters5.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_canvas5.getCanvasIframeDocument)());
1412
+ return (0, import_editor_v1_adapters4.__privateUseListenTo)((0, import_editor_v1_adapters4.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_canvas5.getCanvasIframeDocument)());
1415
1413
  }
1416
1414
 
1417
1415
  // src/hooks/use-element-rect.ts
@@ -1596,7 +1594,7 @@ function useHandleDocumentSwitches() {
1596
1594
  const currentComponentId = (0, import_store25.__useSelector)(selectCurrentComponentId);
1597
1595
  const path = (0, import_store25.__useSelector)(selectPath);
1598
1596
  (0, import_react8.useEffect)(() => {
1599
- return (0, import_editor_v1_adapters6.__privateListenTo)((0, import_editor_v1_adapters6.commandEndEvent)("editor/documents/attach-preview"), () => {
1597
+ return (0, import_editor_v1_adapters5.__privateListenTo)((0, import_editor_v1_adapters5.commandEndEvent)("editor/documents/attach-preview"), () => {
1600
1598
  const nextDocument = documentsManager.getCurrent();
1601
1599
  if (nextDocument.id === currentComponentId) {
1602
1600
  return;
@@ -1660,39 +1658,173 @@ var EditModeDialog = ({ lockedBy }) => {
1660
1658
  )), /* @__PURE__ */ React12.createElement(import_ui8.DialogActions, null, /* @__PURE__ */ React12.createElement(import_ui8.Button, { color: "secondary", variant: "contained", onClick: import_editor_ui4.closeDialog }, (0, import_i18n10.__)("Close", "elementor"))))));
1661
1659
  };
1662
1660
 
1663
- // src/components/overridable-props/overridable-prop-control.tsx
1664
- var React14 = __toESM(require("react"));
1665
- var import_editor_controls = require("@elementor/editor-controls");
1666
- var import_editor_editing_panel = require("@elementor/editor-editing-panel");
1667
- var import_store29 = require("@elementor/store");
1661
+ // src/components/instance-editing-panel/instance-editing-panel.tsx
1662
+ var React15 = __toESM(require("react"));
1663
+ var import_editor_editing_panel2 = require("@elementor/editor-editing-panel");
1664
+ var import_editor_elements5 = require("@elementor/editor-elements");
1665
+ var import_editor_panels = require("@elementor/editor-panels");
1666
+ var import_icons9 = require("@elementor/icons");
1667
+ var import_store27 = require("@elementor/store");
1668
+ var import_ui11 = require("@elementor/ui");
1669
+ var import_i18n12 = require("@wordpress/i18n");
1668
1670
 
1669
- // src/prop-types/component-overridable-prop-type.ts
1671
+ // src/prop-types/component-instance-prop-type.ts
1672
+ var import_editor_props3 = require("@elementor/editor-props");
1673
+ var import_schema4 = require("@elementor/schema");
1674
+
1675
+ // src/prop-types/component-instance-overrides-prop-type.ts
1676
+ var import_editor_props2 = require("@elementor/editor-props");
1677
+ var import_schema3 = require("@elementor/schema");
1678
+
1679
+ // src/prop-types/component-instance-override-prop-type.ts
1670
1680
  var import_editor_props = require("@elementor/editor-props");
1671
1681
  var import_schema2 = require("@elementor/schema");
1672
- var componentOverridablePropTypeUtil = (0, import_editor_props.createPropUtils)(
1673
- "overridable",
1682
+ var componentInstanceOverridePropTypeUtil = (0, import_editor_props.createPropUtils)(
1683
+ "override",
1674
1684
  import_schema2.z.object({
1675
1685
  override_key: import_schema2.z.string(),
1676
- origin_value: import_schema2.z.object({
1677
- $$type: import_schema2.z.string(),
1678
- value: import_schema2.z.unknown()
1679
- }).nullable()
1686
+ override_value: import_schema2.z.unknown(),
1687
+ schema_source: import_schema2.z.object({
1688
+ type: import_schema2.z.literal("component"),
1689
+ id: import_schema2.z.number()
1690
+ })
1680
1691
  })
1681
1692
  );
1682
1693
 
1683
- // src/provider/overridable-prop-context.tsx
1694
+ // src/prop-types/component-instance-overrides-prop-type.ts
1695
+ var componentInstanceOverridesPropTypeUtil = (0, import_editor_props2.createPropUtils)(
1696
+ "overrides",
1697
+ import_schema3.z.array(componentInstanceOverridePropTypeUtil.schema)
1698
+ );
1699
+
1700
+ // src/prop-types/component-instance-prop-type.ts
1701
+ var componentInstancePropTypeUtil = (0, import_editor_props3.createPropUtils)(
1702
+ "component-instance",
1703
+ import_schema4.z.object({
1704
+ component_id: import_editor_props3.numberPropTypeUtil.schema,
1705
+ overrides: componentInstanceOverridesPropTypeUtil.schema
1706
+ })
1707
+ );
1708
+
1709
+ // src/components/instance-editing-panel/empty-state.tsx
1684
1710
  var React13 = __toESM(require("react"));
1711
+ var import_icons8 = require("@elementor/icons");
1712
+ var import_ui9 = require("@elementor/ui");
1713
+ var import_i18n11 = require("@wordpress/i18n");
1714
+ var EmptyState2 = ({ onEditComponent }) => {
1715
+ return /* @__PURE__ */ React13.createElement(
1716
+ import_ui9.Stack,
1717
+ {
1718
+ alignItems: "center",
1719
+ justifyContent: "start",
1720
+ height: "100%",
1721
+ color: "text.secondary",
1722
+ sx: { p: 2.5, pt: 8, pb: 5.5, mt: 1 },
1723
+ gap: 1.5
1724
+ },
1725
+ /* @__PURE__ */ React13.createElement(import_icons8.ComponentPropListIcon, { fontSize: "large" }),
1726
+ /* @__PURE__ */ React13.createElement(import_ui9.Typography, { align: "center", variant: "subtitle2" }, (0, import_i18n11.__)("No properties yet", "elementor")),
1727
+ /* @__PURE__ */ React13.createElement(import_ui9.Typography, { align: "center", variant: "caption", maxWidth: "170px" }, (0, import_i18n11.__)(
1728
+ "Edit the component to add properties, manage them or update the design across all instances.",
1729
+ "elementor"
1730
+ )),
1731
+ /* @__PURE__ */ React13.createElement(import_ui9.Button, { variant: "outlined", color: "secondary", size: "small", sx: { mt: 1 }, onClick: onEditComponent }, /* @__PURE__ */ React13.createElement(import_icons8.PencilIcon, { fontSize: "small" }), (0, import_i18n11.__)("Edit component", "elementor"))
1732
+ );
1733
+ };
1734
+
1735
+ // src/components/instance-editing-panel/override-props-group.tsx
1736
+ var React14 = __toESM(require("react"));
1685
1737
  var import_react9 = require("react");
1686
- var OverridablePropContext = (0, import_react9.createContext)(null);
1738
+ var import_editor_editing_panel = require("@elementor/editor-editing-panel");
1739
+ var import_editor_ui5 = require("@elementor/editor-ui");
1740
+ var import_ui10 = require("@elementor/ui");
1741
+ function OverridePropsGroup({ group, props }) {
1742
+ const [isOpen, setIsOpen] = (0, import_editor_editing_panel.useStateByElement)(group.id, true);
1743
+ const handleClick = () => {
1744
+ setIsOpen(!isOpen);
1745
+ };
1746
+ const id = (0, import_react9.useId)();
1747
+ const labelId = `label-${id}`;
1748
+ const contentId = `content-${id}`;
1749
+ const title = group.label;
1750
+ return /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
1751
+ import_ui10.ListItemButton,
1752
+ {
1753
+ id: labelId,
1754
+ "aria-controls": contentId,
1755
+ "aria-label": `${title} section`,
1756
+ onClick: handleClick,
1757
+ p: 0,
1758
+ sx: { "&:hover": { backgroundColor: "transparent" } }
1759
+ },
1760
+ /* @__PURE__ */ React14.createElement(import_ui10.Stack, { direction: "row", alignItems: "center", justifyItems: "start", flexGrow: 1, gap: 0.5 }, /* @__PURE__ */ React14.createElement(
1761
+ import_ui10.ListItemText,
1762
+ {
1763
+ secondary: title,
1764
+ secondaryTypographyProps: { color: "text.primary", variant: "caption", fontWeight: "bold" },
1765
+ sx: { flexGrow: 0, flexShrink: 1, marginInlineEnd: 1 }
1766
+ }
1767
+ )),
1768
+ /* @__PURE__ */ React14.createElement(import_editor_ui5.CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
1769
+ ), /* @__PURE__ */ React14.createElement(import_ui10.Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto" }, /* @__PURE__ */ React14.createElement(import_ui10.Stack, { direction: "column", gap: 1, p: 2 }, group.props.map((propId) => (
1770
+ // TODO: Render actual controls
1771
+ /* @__PURE__ */ React14.createElement("pre", { key: propId }, JSON.stringify(props[propId], null, 2))
1772
+ )))));
1773
+ }
1774
+
1775
+ // src/components/instance-editing-panel/instance-editing-panel.tsx
1776
+ function InstanceEditingPanel() {
1777
+ const { element } = (0, import_editor_editing_panel2.useElement)();
1778
+ const settings = (0, import_editor_elements5.useElementSetting)(element.id, "component_instance");
1779
+ const componentId = (componentInstancePropTypeUtil.extract(settings)?.component_id).value;
1780
+ const component = componentId ? selectComponent((0, import_store27.__getState)(), componentId) : null;
1781
+ const overridableProps = componentId ? selectOverridableProps((0, import_store27.__getState)(), componentId) : null;
1782
+ const componentInstanceId = (0, import_editor_elements5.useSelectedElement)()?.element?.id ?? null;
1783
+ if (!componentId || !overridableProps || !component) {
1784
+ return null;
1785
+ }
1786
+ const panelTitle = (0, import_i18n12.__)("Edit %s", "elementor").replace("%s", component.name);
1787
+ const handleEditComponent = () => switchToComponent(componentId, componentInstanceId);
1788
+ const groups = overridableProps.groups.order.map(
1789
+ (groupId) => overridableProps.groups.items[groupId] ? overridableProps.groups.items[groupId] : null
1790
+ ).filter(Boolean);
1791
+ const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
1792
+ return /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(import_editor_panels.PanelHeader, { sx: { justifyContent: "start" } }, /* @__PURE__ */ React15.createElement(import_ui11.Stack, { direction: "row", alignContent: "space-between", flexGrow: 1 }, /* @__PURE__ */ React15.createElement(import_ui11.Stack, { direction: "row", alignItems: "center", justifyContent: "start", gap: 1, flexGrow: 1 }, /* @__PURE__ */ React15.createElement(import_icons9.ComponentsIcon, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React15.createElement(import_editor_panels.PanelHeaderTitle, null, component.name)), /* @__PURE__ */ React15.createElement(import_ui11.Tooltip, { title: panelTitle }, /* @__PURE__ */ React15.createElement(import_ui11.IconButton, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React15.createElement(import_icons9.PencilIcon, { fontSize: "tiny" }))))), /* @__PURE__ */ React15.createElement(import_editor_panels.PanelBody, null, isEmpty ? /* @__PURE__ */ React15.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React15.createElement(import_ui11.Stack, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React15.createElement(OverridePropsGroup, { key: group.id, group, props: overridableProps.props })))));
1793
+ }
1794
+
1795
+ // src/components/overridable-props/overridable-prop-control.tsx
1796
+ var React17 = __toESM(require("react"));
1797
+ var import_editor_controls = require("@elementor/editor-controls");
1798
+ var import_editor_editing_panel3 = require("@elementor/editor-editing-panel");
1799
+ var import_store31 = require("@elementor/store");
1800
+
1801
+ // src/prop-types/component-overridable-prop-type.ts
1802
+ var import_editor_props4 = require("@elementor/editor-props");
1803
+ var import_schema5 = require("@elementor/schema");
1804
+ var componentOverridablePropTypeUtil = (0, import_editor_props4.createPropUtils)(
1805
+ "overridable",
1806
+ import_schema5.z.object({
1807
+ override_key: import_schema5.z.string(),
1808
+ origin_value: import_schema5.z.object({
1809
+ $$type: import_schema5.z.string(),
1810
+ value: import_schema5.z.unknown()
1811
+ }).nullable()
1812
+ })
1813
+ );
1814
+
1815
+ // src/provider/overridable-prop-context.tsx
1816
+ var React16 = __toESM(require("react"));
1817
+ var import_react10 = require("react");
1818
+ var OverridablePropContext = (0, import_react10.createContext)(null);
1687
1819
  function OverridablePropProvider({ children, ...props }) {
1688
- return /* @__PURE__ */ React13.createElement(OverridablePropContext.Provider, { value: props }, children);
1820
+ return /* @__PURE__ */ React16.createElement(OverridablePropContext.Provider, { value: props }, children);
1689
1821
  }
1690
- var useOverridablePropValue = () => (0, import_react9.useContext)(OverridablePropContext)?.value;
1822
+ var useOverridablePropValue = () => (0, import_react10.useContext)(OverridablePropContext)?.value;
1691
1823
 
1692
1824
  // src/store/actions/update-overridable-prop-origin-value.ts
1693
- var import_store27 = require("@elementor/store");
1825
+ var import_store29 = require("@elementor/store");
1694
1826
  function updateOverridablePropOriginValue(componentId, propValue) {
1695
- const overridableProps = selectOverridableProps((0, import_store27.__getState)(), componentId);
1827
+ const overridableProps = selectOverridableProps((0, import_store29.__getState)(), componentId);
1696
1828
  if (!overridableProps) {
1697
1829
  return;
1698
1830
  }
@@ -1710,7 +1842,7 @@ function updateOverridablePropOriginValue(componentId, propValue) {
1710
1842
  }
1711
1843
  }
1712
1844
  };
1713
- (0, import_store27.__dispatch)(
1845
+ (0, import_store29.__dispatch)(
1714
1846
  slice.actions.setOverridableProps({
1715
1847
  componentId,
1716
1848
  overridableProps: newOverridableProps
@@ -1723,9 +1855,9 @@ function OverridablePropControl({
1723
1855
  OriginalControl,
1724
1856
  ...props
1725
1857
  }) {
1726
- const { elementType } = (0, import_editor_editing_panel.useElement)();
1858
+ const { elementType } = (0, import_editor_editing_panel3.useElement)();
1727
1859
  const { value, bind, setValue, placeholder, ...propContext } = (0, import_editor_controls.useBoundProp)(componentOverridablePropTypeUtil);
1728
- const componentId = selectCurrentComponentId((0, import_store29.__getState)());
1860
+ const componentId = selectCurrentComponentId((0, import_store31.__getState)());
1729
1861
  if (!componentId) {
1730
1862
  throw new Error("Component ID is required");
1731
1863
  }
@@ -1740,13 +1872,13 @@ function OverridablePropControl({
1740
1872
  setValue(propValue);
1741
1873
  updateOverridablePropOriginValue(componentId, propValue);
1742
1874
  };
1743
- const propType = (0, import_editor_editing_panel.createTopLevelObjectType)({
1875
+ const propType = (0, import_editor_editing_panel3.createTopLevelObjectType)({
1744
1876
  schema: {
1745
1877
  [bind]: elementType.propsSchema[bind]
1746
1878
  }
1747
1879
  });
1748
1880
  const objectPlaceholder = placeholder ? { [bind]: placeholder } : void 0;
1749
- return /* @__PURE__ */ React14.createElement(OverridablePropProvider, { value }, /* @__PURE__ */ React14.createElement(
1881
+ return /* @__PURE__ */ React17.createElement(OverridablePropProvider, { value }, /* @__PURE__ */ React17.createElement(
1750
1882
  import_editor_controls.PropProvider,
1751
1883
  {
1752
1884
  ...propContext,
@@ -1755,23 +1887,23 @@ function OverridablePropControl({
1755
1887
  value: { [bind]: value.origin_value },
1756
1888
  placeholder: objectPlaceholder
1757
1889
  },
1758
- /* @__PURE__ */ React14.createElement(import_editor_controls.PropKeyProvider, { bind }, /* @__PURE__ */ React14.createElement(import_editor_controls.ControlReplacementsProvider, { replacements: [] }, /* @__PURE__ */ React14.createElement(OriginalControl, { ...props })))
1890
+ /* @__PURE__ */ React17.createElement(import_editor_controls.PropKeyProvider, { bind }, /* @__PURE__ */ React17.createElement(import_editor_controls.ControlReplacementsProvider, { replacements: [] }, /* @__PURE__ */ React17.createElement(OriginalControl, { ...props })))
1759
1891
  ));
1760
1892
  }
1761
1893
 
1762
1894
  // src/components/overridable-props/overridable-prop-indicator.tsx
1763
- var React17 = __toESM(require("react"));
1895
+ var React20 = __toESM(require("react"));
1764
1896
  var import_editor_controls2 = require("@elementor/editor-controls");
1765
- var import_editor_editing_panel2 = require("@elementor/editor-editing-panel");
1766
- var import_editor_elements5 = require("@elementor/editor-elements");
1767
- var import_store35 = require("@elementor/store");
1768
- var import_ui11 = require("@elementor/ui");
1769
- var import_i18n14 = require("@wordpress/i18n");
1897
+ var import_editor_editing_panel4 = require("@elementor/editor-editing-panel");
1898
+ var import_editor_elements6 = require("@elementor/editor-elements");
1899
+ var import_store37 = require("@elementor/store");
1900
+ var import_ui14 = require("@elementor/ui");
1901
+ var import_i18n16 = require("@wordpress/i18n");
1770
1902
 
1771
1903
  // src/store/actions/set-overridable-prop.ts
1772
- var import_store31 = require("@elementor/store");
1904
+ var import_store33 = require("@elementor/store");
1773
1905
  var import_utils4 = require("@elementor/utils");
1774
- var import_i18n11 = require("@wordpress/i18n");
1906
+ var import_i18n13 = require("@wordpress/i18n");
1775
1907
  function setOverridableProp({
1776
1908
  componentId,
1777
1909
  overrideKey,
@@ -1783,7 +1915,7 @@ function setOverridableProp({
1783
1915
  widgetType,
1784
1916
  originValue
1785
1917
  }) {
1786
- const overridableProps = selectOverridableProps((0, import_store31.__getState)(), componentId);
1918
+ const overridableProps = selectOverridableProps((0, import_store33.__getState)(), componentId);
1787
1919
  if (!overridableProps) {
1788
1920
  return;
1789
1921
  }
@@ -1830,7 +1962,7 @@ function setOverridableProp({
1830
1962
  overridableProp
1831
1963
  );
1832
1964
  }
1833
- (0, import_store31.__dispatch)(
1965
+ (0, import_store33.__dispatch)(
1834
1966
  slice.actions.setOverridableProps({
1835
1967
  componentId,
1836
1968
  overridableProps: {
@@ -1861,7 +1993,7 @@ function addNewGroup(groups, groupId) {
1861
1993
  ...groups.items,
1862
1994
  [currentGroupId]: {
1863
1995
  id: currentGroupId,
1864
- label: (0, import_i18n11.__)("Default", "elementor"),
1996
+ label: (0, import_i18n13.__)("Default", "elementor"),
1865
1997
  props: []
1866
1998
  }
1867
1999
  },
@@ -1911,13 +2043,13 @@ function removeProps({
1911
2043
  }
1912
2044
 
1913
2045
  // src/components/overridable-props/indicator.tsx
1914
- var React15 = __toESM(require("react"));
1915
- var import_react10 = require("react");
1916
- var import_icons8 = require("@elementor/icons");
1917
- var import_ui9 = require("@elementor/ui");
1918
- var import_i18n12 = require("@wordpress/i18n");
2046
+ var React18 = __toESM(require("react"));
2047
+ var import_react11 = require("react");
2048
+ var import_icons10 = require("@elementor/icons");
2049
+ var import_ui12 = require("@elementor/ui");
2050
+ var import_i18n14 = require("@wordpress/i18n");
1919
2051
  var SIZE = "tiny";
1920
- var IconContainer = (0, import_ui9.styled)(import_ui9.Box)`
2052
+ var IconContainer = (0, import_ui12.styled)(import_ui12.Box)`
1921
2053
  pointer-events: none;
1922
2054
  opacity: 0;
1923
2055
  transition: opacity 0.2s ease-in-out;
@@ -1934,7 +2066,7 @@ var IconContainer = (0, import_ui9.styled)(import_ui9.Box)`
1934
2066
  stroke-width: 2px;
1935
2067
  }
1936
2068
  `;
1937
- var Content = (0, import_ui9.styled)(import_ui9.Box)`
2069
+ var Content = (0, import_ui12.styled)(import_ui12.Box)`
1938
2070
  position: relative;
1939
2071
  display: flex;
1940
2072
  align-items: center;
@@ -1971,33 +2103,33 @@ var Content = (0, import_ui9.styled)(import_ui9.Box)`
1971
2103
  }
1972
2104
  }
1973
2105
  `;
1974
- var Indicator = (0, import_react10.forwardRef)(({ isOpen, isOverridable, ...props }, ref) => /* @__PURE__ */ React15.createElement(Content, { ref, ...props, className: isOpen || isOverridable ? "enlarged" : "" }, /* @__PURE__ */ React15.createElement(
2106
+ var Indicator = (0, import_react11.forwardRef)(({ isOpen, isOverridable, ...props }, ref) => /* @__PURE__ */ React18.createElement(Content, { ref, ...props, className: isOpen || isOverridable ? "enlarged" : "" }, /* @__PURE__ */ React18.createElement(
1975
2107
  IconContainer,
1976
2108
  {
1977
2109
  className: "icon",
1978
- "aria-label": isOverridable ? (0, import_i18n12.__)("Overridable property", "elementor") : (0, import_i18n12.__)("Make prop overridable", "elementor")
2110
+ "aria-label": isOverridable ? (0, import_i18n14.__)("Overridable property", "elementor") : (0, import_i18n14.__)("Make prop overridable", "elementor")
1979
2111
  },
1980
- isOverridable ? /* @__PURE__ */ React15.createElement(import_icons8.CheckIcon, { fontSize: SIZE }) : /* @__PURE__ */ React15.createElement(import_icons8.PlusIcon, { fontSize: SIZE })
2112
+ isOverridable ? /* @__PURE__ */ React18.createElement(import_icons10.CheckIcon, { fontSize: SIZE }) : /* @__PURE__ */ React18.createElement(import_icons10.PlusIcon, { fontSize: SIZE })
1981
2113
  )));
1982
2114
 
1983
2115
  // src/components/overridable-props/overridable-prop-form.tsx
1984
- var React16 = __toESM(require("react"));
1985
- var import_react11 = require("react");
1986
- var import_editor_ui5 = require("@elementor/editor-ui");
1987
- var import_ui10 = require("@elementor/ui");
1988
- var import_i18n13 = require("@wordpress/i18n");
2116
+ var React19 = __toESM(require("react"));
2117
+ var import_react12 = require("react");
2118
+ var import_editor_ui6 = require("@elementor/editor-ui");
2119
+ var import_ui13 = require("@elementor/ui");
2120
+ var import_i18n15 = require("@wordpress/i18n");
1989
2121
  var SIZE2 = "tiny";
1990
- var DEFAULT_GROUP = { value: null, label: (0, import_i18n13.__)("Default", "elementor") };
2122
+ var DEFAULT_GROUP = { value: null, label: (0, import_i18n15.__)("Default", "elementor") };
1991
2123
  function OverridablePropForm({ onSubmit, groups, currentValue }) {
1992
- const [propLabel, setPropLabel] = (0, import_react11.useState)(currentValue?.label ?? null);
1993
- const [group, setGroup] = (0, import_react11.useState)(currentValue?.groupId ?? groups?.[0]?.value ?? null);
1994
- const name = (0, import_i18n13.__)("Name", "elementor");
1995
- const groupName = (0, import_i18n13.__)("Group Name", "elementor");
2124
+ const [propLabel, setPropLabel] = (0, import_react12.useState)(currentValue?.label ?? null);
2125
+ const [group, setGroup] = (0, import_react12.useState)(currentValue?.groupId ?? groups?.[0]?.value ?? null);
2126
+ const name = (0, import_i18n15.__)("Name", "elementor");
2127
+ const groupName = (0, import_i18n15.__)("Group Name", "elementor");
1996
2128
  const isCreate = currentValue === void 0;
1997
- const title = isCreate ? (0, import_i18n13.__)("Create new property", "elementor") : (0, import_i18n13.__)("Update property", "elementor");
1998
- const ctaLabel = isCreate ? (0, import_i18n13.__)("Create", "elementor") : (0, import_i18n13.__)("Update", "elementor");
1999
- return /* @__PURE__ */ React16.createElement(import_editor_ui5.Form, { onSubmit: () => onSubmit({ label: propLabel ?? "", group }) }, /* @__PURE__ */ React16.createElement(import_ui10.Stack, { alignItems: "start", width: "268px" }, /* @__PURE__ */ React16.createElement(
2000
- import_ui10.Stack,
2129
+ const title = isCreate ? (0, import_i18n15.__)("Create new property", "elementor") : (0, import_i18n15.__)("Update property", "elementor");
2130
+ const ctaLabel = isCreate ? (0, import_i18n15.__)("Create", "elementor") : (0, import_i18n15.__)("Update", "elementor");
2131
+ return /* @__PURE__ */ React19.createElement(import_editor_ui6.Form, { onSubmit: () => onSubmit({ label: propLabel ?? "", group }) }, /* @__PURE__ */ React19.createElement(import_ui13.Stack, { alignItems: "start", width: "268px" }, /* @__PURE__ */ React19.createElement(
2132
+ import_ui13.Stack,
2001
2133
  {
2002
2134
  direction: "row",
2003
2135
  alignItems: "center",
@@ -2005,19 +2137,19 @@ function OverridablePropForm({ onSubmit, groups, currentValue }) {
2005
2137
  px: 1.5,
2006
2138
  sx: { columnGap: 0.5, borderBottom: "1px solid", borderColor: "divider", width: "100%", mb: 1.5 }
2007
2139
  },
2008
- /* @__PURE__ */ React16.createElement(import_ui10.Typography, { variant: "caption", sx: { color: "text.primary", fontWeight: "500", lineHeight: 1 } }, title)
2009
- ), /* @__PURE__ */ React16.createElement(import_ui10.Grid, { container: true, gap: 0.75, alignItems: "start", px: 1.5, mb: 1.5 }, /* @__PURE__ */ React16.createElement(import_ui10.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React16.createElement(import_ui10.FormLabel, { size: "tiny" }, name)), /* @__PURE__ */ React16.createElement(import_ui10.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React16.createElement(
2010
- import_ui10.TextField,
2140
+ /* @__PURE__ */ React19.createElement(import_ui13.Typography, { variant: "caption", sx: { color: "text.primary", fontWeight: "500", lineHeight: 1 } }, title)
2141
+ ), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { container: true, gap: 0.75, alignItems: "start", px: 1.5, mb: 1.5 }, /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(import_ui13.FormLabel, { size: "tiny" }, name)), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(
2142
+ import_ui13.TextField,
2011
2143
  {
2012
2144
  name,
2013
2145
  size: SIZE2,
2014
2146
  fullWidth: true,
2015
- placeholder: (0, import_i18n13.__)("Enter value", "elementor"),
2147
+ placeholder: (0, import_i18n15.__)("Enter value", "elementor"),
2016
2148
  value: propLabel ?? "",
2017
2149
  onChange: (e) => setPropLabel(e.target.value)
2018
2150
  }
2019
- ))), /* @__PURE__ */ React16.createElement(import_ui10.Grid, { container: true, gap: 0.75, alignItems: "start", px: 1.5, mb: 1.5 }, /* @__PURE__ */ React16.createElement(import_ui10.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React16.createElement(import_ui10.FormLabel, { size: "tiny" }, groupName)), /* @__PURE__ */ React16.createElement(import_ui10.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React16.createElement(
2020
- import_ui10.Select,
2151
+ ))), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { container: true, gap: 0.75, alignItems: "start", px: 1.5, mb: 1.5 }, /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(import_ui13.FormLabel, { size: "tiny" }, groupName)), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(
2152
+ import_ui13.Select,
2021
2153
  {
2022
2154
  name: groupName,
2023
2155
  size: SIZE2,
@@ -2033,17 +2165,17 @@ function OverridablePropForm({ onSubmit, groups, currentValue }) {
2033
2165
  return groups?.find(({ value }) => value === selectedValue)?.label ?? selectedValue;
2034
2166
  }
2035
2167
  },
2036
- (groups ?? [DEFAULT_GROUP]).map(({ label: groupLabel, ...props }) => /* @__PURE__ */ React16.createElement(import_editor_ui5.MenuListItem, { key: props.value, ...props, value: props.value ?? "" }, groupLabel))
2037
- ))), /* @__PURE__ */ React16.createElement(import_ui10.Stack, { direction: "row", justifyContent: "flex-end", alignSelf: "end", mt: 1.5, py: 1, px: 1.5 }, /* @__PURE__ */ React16.createElement(import_ui10.Button, { type: "submit", disabled: !propLabel, variant: "contained", color: "primary", size: "small" }, ctaLabel))));
2168
+ (groups ?? [DEFAULT_GROUP]).map(({ label: groupLabel, ...props }) => /* @__PURE__ */ React19.createElement(import_editor_ui6.MenuListItem, { key: props.value, ...props, value: props.value ?? "" }, groupLabel))
2169
+ ))), /* @__PURE__ */ React19.createElement(import_ui13.Stack, { direction: "row", justifyContent: "flex-end", alignSelf: "end", mt: 1.5, py: 1, px: 1.5 }, /* @__PURE__ */ React19.createElement(import_ui13.Button, { type: "submit", disabled: !propLabel, variant: "contained", color: "primary", size: "small" }, ctaLabel))));
2038
2170
  }
2039
2171
 
2040
2172
  // src/components/overridable-props/utils/get-overridable-prop.ts
2041
- var import_store33 = require("@elementor/store");
2173
+ var import_store35 = require("@elementor/store");
2042
2174
  function getOverridableProp({
2043
2175
  componentId,
2044
2176
  overrideKey
2045
2177
  }) {
2046
- const overridableProps = selectOverridableProps((0, import_store33.__getState)(), componentId);
2178
+ const overridableProps = selectOverridableProps((0, import_store35.__getState)(), componentId);
2047
2179
  if (!overridableProps) {
2048
2180
  return void 0;
2049
2181
  }
@@ -2054,30 +2186,30 @@ function getOverridableProp({
2054
2186
  var FORBIDDEN_KEYS = ["_cssid", "attributes"];
2055
2187
  function OverridablePropIndicator() {
2056
2188
  const { bind } = (0, import_editor_controls2.useBoundProp)();
2057
- const componentId = selectCurrentComponentId((0, import_store35.__getState)());
2189
+ const componentId = selectCurrentComponentId((0, import_store37.__getState)());
2058
2190
  if (!isPropAllowed(bind) || !componentId) {
2059
2191
  return null;
2060
2192
  }
2061
- const overridableProps = selectOverridableProps((0, import_store35.__getState)(), componentId);
2062
- return /* @__PURE__ */ React17.createElement(Content2, { componentId, overridableProps });
2193
+ const overridableProps = selectOverridableProps((0, import_store37.__getState)(), componentId);
2194
+ return /* @__PURE__ */ React20.createElement(Content2, { componentId, overridableProps });
2063
2195
  }
2064
2196
  function Content2({ componentId, overridableProps }) {
2065
2197
  const {
2066
2198
  element: { id: elementId },
2067
2199
  elementType
2068
- } = (0, import_editor_editing_panel2.useElement)();
2200
+ } = (0, import_editor_editing_panel4.useElement)();
2069
2201
  const { value, bind, propType } = (0, import_editor_controls2.useBoundProp)();
2070
2202
  const contextOverridableValue = useOverridablePropValue();
2071
2203
  const { value: boundPropOverridableValue, setValue: setOverridableValue } = (0, import_editor_controls2.useBoundProp)(
2072
2204
  componentOverridablePropTypeUtil
2073
2205
  );
2074
2206
  const overridableValue = boundPropOverridableValue ?? contextOverridableValue;
2075
- const popupState = (0, import_ui11.usePopupState)({
2207
+ const popupState = (0, import_ui14.usePopupState)({
2076
2208
  variant: "popover"
2077
2209
  });
2078
- const triggerProps = (0, import_ui11.bindTrigger)(popupState);
2079
- const popoverProps = (0, import_ui11.bindPopover)(popupState);
2080
- const { elType } = (0, import_editor_elements5.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
2210
+ const triggerProps = (0, import_ui14.bindTrigger)(popupState);
2211
+ const popoverProps = (0, import_ui14.bindPopover)(popupState);
2212
+ const { elType } = (0, import_editor_elements6.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
2081
2213
  const handleSubmit = ({ label, group }) => {
2082
2214
  const originValue = !overridableValue ? value ?? propType.default : overridableValue?.origin_value ?? {};
2083
2215
  const overridablePropConfig = setOverridableProp({
@@ -2100,8 +2232,8 @@ function Content2({ componentId, overridableProps }) {
2100
2232
  popupState.close();
2101
2233
  };
2102
2234
  const overridableConfig = overridableValue ? getOverridableProp({ componentId, overrideKey: overridableValue.override_key }) : void 0;
2103
- return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement(import_ui11.Tooltip, { placement: "top", title: (0, import_i18n14.__)("Override Property", "elementor") }, /* @__PURE__ */ React17.createElement(Indicator, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React17.createElement(
2104
- import_ui11.Popover,
2235
+ return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(import_ui14.Tooltip, { placement: "top", title: (0, import_i18n16.__)("Override Property", "elementor") }, /* @__PURE__ */ React20.createElement(Indicator, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React20.createElement(
2236
+ import_ui14.Popover,
2105
2237
  {
2106
2238
  disableScrollLock: true,
2107
2239
  anchorOrigin: {
@@ -2117,7 +2249,7 @@ function Content2({ componentId, overridableProps }) {
2117
2249
  },
2118
2250
  ...popoverProps
2119
2251
  },
2120
- /* @__PURE__ */ React17.createElement(
2252
+ /* @__PURE__ */ React20.createElement(
2121
2253
  OverridablePropForm,
2122
2254
  {
2123
2255
  onSubmit: handleSubmit,
@@ -2138,18 +2270,18 @@ function isPropAllowed(bind) {
2138
2270
  var import_editor_mcp2 = require("@elementor/editor-mcp");
2139
2271
 
2140
2272
  // src/mcp/save-as-component-tool.ts
2141
- var import_editor_elements6 = require("@elementor/editor-elements");
2273
+ var import_editor_elements7 = require("@elementor/editor-elements");
2142
2274
  var import_editor_mcp = require("@elementor/editor-mcp");
2143
- var import_schema3 = require("@elementor/schema");
2275
+ var import_schema6 = require("@elementor/schema");
2144
2276
  var InputSchema = {
2145
- element_id: import_schema3.z.string().describe(
2277
+ element_id: import_schema6.z.string().describe(
2146
2278
  '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.'
2147
2279
  ),
2148
- component_name: import_schema3.z.string().describe("The name for the new component. Should be descriptive and unique among existing components.")
2280
+ component_name: import_schema6.z.string().describe("The name for the new component. Should be descriptive and unique among existing components.")
2149
2281
  };
2150
2282
  var OutputSchema = {
2151
- message: import_schema3.z.string().optional().describe("Additional information about the operation result"),
2152
- component_uid: import_schema3.z.string().optional().describe("The unique identifier of the newly created component (only present on success)")
2283
+ message: import_schema6.z.string().optional().describe("Additional information about the operation result"),
2284
+ component_uid: import_schema6.z.string().optional().describe("The unique identifier of the newly created component (only present on success)")
2153
2285
  };
2154
2286
  var VALID_ELEMENT_TYPES = ["e-div-block", "e-flexbox", "e-tabs"];
2155
2287
  var ERROR_MESSAGES = {
@@ -2159,7 +2291,7 @@ var ERROR_MESSAGES = {
2159
2291
  };
2160
2292
  var handleSaveAsComponent = async (params) => {
2161
2293
  const { element_id: elementId, component_name: componentName } = params;
2162
- const container = (0, import_editor_elements6.getContainer)(elementId);
2294
+ const container = (0, import_editor_elements7.getContainer)(elementId);
2163
2295
  if (!container) {
2164
2296
  throw new Error(ERROR_MESSAGES.ELEMENT_NOT_FOUND);
2165
2297
  }
@@ -2219,29 +2351,29 @@ function initMcp() {
2219
2351
  }
2220
2352
 
2221
2353
  // src/populate-store.ts
2222
- var import_react12 = require("react");
2223
- var import_store37 = require("@elementor/store");
2354
+ var import_react13 = require("react");
2355
+ var import_store39 = require("@elementor/store");
2224
2356
  function PopulateStore() {
2225
- (0, import_react12.useEffect)(() => {
2226
- (0, import_store37.__dispatch)(loadComponents());
2357
+ (0, import_react13.useEffect)(() => {
2358
+ (0, import_store39.__dispatch)(loadComponents());
2227
2359
  }, []);
2228
2360
  return null;
2229
2361
  }
2230
2362
 
2231
2363
  // src/store/actions/remove-component-styles.ts
2232
- var import_store38 = require("@elementor/store");
2364
+ var import_store40 = require("@elementor/store");
2233
2365
  function removeComponentStyles(id) {
2234
2366
  apiClient.invalidateComponentConfigCache(id);
2235
- (0, import_store38.__dispatch)(slice.actions.removeStyles({ id }));
2367
+ (0, import_store40.__dispatch)(slice.actions.removeStyles({ id }));
2236
2368
  }
2237
2369
 
2238
2370
  // src/store/components-styles-provider.ts
2239
2371
  var import_editor_styles_repository = require("@elementor/editor-styles-repository");
2240
- var import_store40 = require("@elementor/store");
2372
+ var import_store42 = require("@elementor/store");
2241
2373
  var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
2242
2374
  key: "components-styles",
2243
2375
  priority: 100,
2244
- subscribe: (cb) => (0, import_store40.__subscribeWithSelector)(
2376
+ subscribe: (cb) => (0, import_store42.__subscribeWithSelector)(
2245
2377
  (state) => state[SLICE_NAME],
2246
2378
  () => {
2247
2379
  cb();
@@ -2249,29 +2381,29 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
2249
2381
  ),
2250
2382
  actions: {
2251
2383
  all: () => {
2252
- return selectFlatStyles((0, import_store40.__getState)());
2384
+ return selectFlatStyles((0, import_store42.__getState)());
2253
2385
  },
2254
2386
  get: (id) => {
2255
- return selectFlatStyles((0, import_store40.__getState)()).find((style) => style.id === id) ?? null;
2387
+ return selectFlatStyles((0, import_store42.__getState)()).find((style) => style.id === id) ?? null;
2256
2388
  }
2257
2389
  }
2258
2390
  });
2259
2391
 
2260
2392
  // src/sync/create-components-before-save.ts
2261
- var import_editor_elements7 = require("@elementor/editor-elements");
2262
- var import_store42 = require("@elementor/store");
2393
+ var import_editor_elements8 = require("@elementor/editor-elements");
2394
+ var import_store44 = require("@elementor/store");
2263
2395
  async function createComponentsBeforeSave({
2264
2396
  elements,
2265
2397
  status
2266
2398
  }) {
2267
- const unpublishedComponents = selectUnpublishedComponents((0, import_store42.__getState)());
2399
+ const unpublishedComponents = selectUnpublishedComponents((0, import_store44.__getState)());
2268
2400
  if (!unpublishedComponents.length) {
2269
2401
  return;
2270
2402
  }
2271
2403
  try {
2272
2404
  const uidToComponentId = await createComponents(unpublishedComponents, status);
2273
2405
  updateComponentInstances(elements, uidToComponentId);
2274
- (0, import_store42.__dispatch)(
2406
+ (0, import_store44.__dispatch)(
2275
2407
  slice.actions.add(
2276
2408
  unpublishedComponents.map((component) => ({
2277
2409
  id: uidToComponentId.get(component.uid),
@@ -2280,7 +2412,7 @@ async function createComponentsBeforeSave({
2280
2412
  }))
2281
2413
  )
2282
2414
  );
2283
- (0, import_store42.__dispatch)(slice.actions.resetUnpublished());
2415
+ (0, import_store44.__dispatch)(slice.actions.resetUnpublished());
2284
2416
  } catch (error) {
2285
2417
  throw new Error(`Failed to publish components and update component instances: ${error}`);
2286
2418
  }
@@ -2321,7 +2453,7 @@ function shouldUpdateElement(element, uidToComponentId) {
2321
2453
  return { shouldUpdate: false, newComponentId: null };
2322
2454
  }
2323
2455
  function updateElementComponentId(elementId, componentId) {
2324
- (0, import_editor_elements7.updateElementSettings)({
2456
+ (0, import_editor_elements8.updateElementSettings)({
2325
2457
  id: elementId,
2326
2458
  props: {
2327
2459
  component_instance: {
@@ -2336,7 +2468,7 @@ function updateElementComponentId(elementId, componentId) {
2336
2468
  }
2337
2469
 
2338
2470
  // src/sync/set-component-overridable-props-settings-before-save.ts
2339
- var import_store44 = require("@elementor/store");
2471
+ var import_store46 = require("@elementor/store");
2340
2472
  var setComponentOverridablePropsSettingsBeforeSave = ({
2341
2473
  container
2342
2474
  }) => {
@@ -2344,7 +2476,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
2344
2476
  if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
2345
2477
  return;
2346
2478
  }
2347
- const overridableProps = selectOverridableProps((0, import_store44.__getState)(), currentDocument.id);
2479
+ const overridableProps = selectOverridableProps((0, import_store46.__getState)(), currentDocument.id);
2348
2480
  if (overridableProps) {
2349
2481
  container.settings.set("overridable_props", overridableProps);
2350
2482
  }
@@ -2352,7 +2484,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
2352
2484
 
2353
2485
  // src/sync/update-archived-component-before-save.ts
2354
2486
  var import_editor_notifications = require("@elementor/editor-notifications");
2355
- var import_store46 = require("@elementor/store");
2487
+ var import_store48 = require("@elementor/store");
2356
2488
  var failedNotification = (message) => ({
2357
2489
  type: "error",
2358
2490
  message: `Failed to archive components: ${message}`,
@@ -2365,7 +2497,7 @@ var successNotification = (message) => ({
2365
2497
  });
2366
2498
  var updateArchivedComponentBeforeSave = async () => {
2367
2499
  try {
2368
- const archivedComponents = selectArchivedComponents((0, import_store46.__getState)());
2500
+ const archivedComponents = selectArchivedComponents((0, import_store48.__getState)());
2369
2501
  if (!archivedComponents.length) {
2370
2502
  return;
2371
2503
  }
@@ -2415,23 +2547,23 @@ var beforeSave = ({ container, status }) => {
2415
2547
  // src/init.ts
2416
2548
  function init() {
2417
2549
  import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
2418
- (0, import_store48.__registerSlice)(slice);
2550
+ (0, import_store50.__registerSlice)(slice);
2419
2551
  (0, import_editor_canvas6.registerElementType)(
2420
2552
  TYPE,
2421
2553
  (options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
2422
2554
  );
2423
- (0, import_editor_v1_adapters7.registerDataHook)("dependency", "editor/documents/close", (args) => {
2555
+ (0, import_editor_v1_adapters6.registerDataHook)("dependency", "editor/documents/close", (args) => {
2424
2556
  const document = (0, import_editor_documents10.getV1CurrentDocument)();
2425
2557
  if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
2426
2558
  args.mode = "autosave";
2427
2559
  }
2428
2560
  return true;
2429
2561
  });
2430
- (0, import_editor_v1_adapters7.registerDataHook)("after", "preview/drop", onElementDrop);
2562
+ (0, import_editor_v1_adapters6.registerDataHook)("after", "preview/drop", onElementDrop);
2431
2563
  window.elementorCommon.__beforeSave = beforeSave;
2432
2564
  (0, import_editor_elements_panel.injectTab)({
2433
2565
  id: "components",
2434
- label: (0, import_i18n15.__)("Components", "elementor"),
2566
+ label: (0, import_i18n17.__)("Components", "elementor"),
2435
2567
  component: Components
2436
2568
  });
2437
2569
  (0, import_editor.injectIntoTop)({
@@ -2446,27 +2578,32 @@ function init() {
2446
2578
  id: "edit-component",
2447
2579
  component: EditComponent
2448
2580
  });
2449
- (0, import_editor_editing_panel3.injectIntoPanelHeaderTop)({
2581
+ (0, import_editor_editing_panel5.injectIntoPanelHeaderTop)({
2450
2582
  id: "component-panel-header",
2451
2583
  component: ComponentPanelHeader
2452
2584
  });
2453
- (0, import_editor_v1_adapters7.registerDataHook)("after", "editor/documents/attach-preview", async () => {
2585
+ (0, import_editor_v1_adapters6.registerDataHook)("after", "editor/documents/attach-preview", async () => {
2454
2586
  const { id, config } = (0, import_editor_documents10.getV1CurrentDocument)();
2455
2587
  if (id) {
2456
2588
  removeComponentStyles(id);
2457
2589
  }
2458
2590
  await loadComponentsAssets(config?.elements ?? []);
2459
2591
  });
2460
- (0, import_editor_editing_panel3.registerFieldIndicator)({
2461
- fieldType: import_editor_editing_panel3.FIELD_TYPE.SETTINGS,
2592
+ (0, import_editor_editing_panel5.registerFieldIndicator)({
2593
+ fieldType: import_editor_editing_panel5.FIELD_TYPE.SETTINGS,
2462
2594
  id: "component-overridable-prop",
2463
2595
  priority: 1,
2464
2596
  indicator: OverridablePropIndicator
2465
2597
  });
2466
- (0, import_editor_editing_panel3.registerControlReplacement)({
2598
+ (0, import_editor_editing_panel5.registerControlReplacement)({
2467
2599
  component: OverridablePropControl,
2468
2600
  condition: ({ value }) => componentOverridablePropTypeUtil.isValid(value)
2469
2601
  });
2602
+ (0, import_editor_editing_panel5.registerEditingPanelReplacement)({
2603
+ id: "component-instance-edit-panel",
2604
+ condition: (_, elementType) => elementType.key === "e-component",
2605
+ component: InstanceEditingPanel
2606
+ });
2470
2607
  import_editor_canvas6.settingsTransformersRegistry.register("component-instance", componentInstanceTransformer);
2471
2608
  import_editor_canvas6.settingsTransformersRegistry.register("overridable", componentOverridableTransformer);
2472
2609
  initMcp();