@elementor/editor-canvas 4.4.0-1149 → 4.4.0-beta2
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 +155 -124
- package/dist/index.mjs +50 -19
- package/package.json +20 -20
- package/src/components/__tests__/style-renderer.test.tsx +1 -0
- package/src/components/style-renderer.tsx +1 -1
- package/src/hooks/__tests__/use-style-items.test.ts +162 -1
- package/src/hooks/use-pregenerated-links-handoff.ts +33 -0
- package/src/hooks/use-style-items.ts +5 -7
- package/src/mcp/resources/__tests__/selected-element-resource.test.ts +106 -0
- package/src/mcp/resources/selected-element-resource.ts +11 -1
- package/src/mcp/tools/configure-element/__tests__/tool.test.ts +53 -1
- package/src/mcp/tools/configure-element/tool.ts +1 -1
- package/src/renderers/__tests__/create-dom-renderer.test.ts +24 -0
- package/src/renderers/create-dom-renderer.ts +10 -0
package/dist/index.js
CHANGED
|
@@ -1179,7 +1179,7 @@ function usePortalContainer() {
|
|
|
1179
1179
|
|
|
1180
1180
|
// src/components/style-renderer.tsx
|
|
1181
1181
|
var React9 = __toESM(require("react"));
|
|
1182
|
-
var
|
|
1182
|
+
var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
|
|
1183
1183
|
var import_ui4 = require("@elementor/ui");
|
|
1184
1184
|
|
|
1185
1185
|
// src/hooks/use-documents-css-links.ts
|
|
@@ -1230,11 +1230,11 @@ function getLinkAttrs(el) {
|
|
|
1230
1230
|
}
|
|
1231
1231
|
|
|
1232
1232
|
// src/hooks/use-style-items.ts
|
|
1233
|
-
var
|
|
1233
|
+
var import_react17 = require("react");
|
|
1234
1234
|
var import_editor_responsive2 = require("@elementor/editor-responsive");
|
|
1235
1235
|
var import_editor_styles3 = require("@elementor/editor-styles");
|
|
1236
1236
|
var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
|
|
1237
|
-
var
|
|
1237
|
+
var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
|
|
1238
1238
|
|
|
1239
1239
|
// src/utils/abort-previous-runs.ts
|
|
1240
1240
|
function abortPreviousRuns(cb) {
|
|
@@ -1291,10 +1291,29 @@ function signalizedProcess(signal, steps = []) {
|
|
|
1291
1291
|
};
|
|
1292
1292
|
}
|
|
1293
1293
|
|
|
1294
|
-
// src/hooks/use-
|
|
1294
|
+
// src/hooks/use-pregenerated-links-handoff.ts
|
|
1295
1295
|
var import_react14 = require("react");
|
|
1296
|
-
var import_editor_styles = require("@elementor/editor-styles");
|
|
1297
1296
|
var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
|
|
1297
|
+
function usePregeneratedLinksHandoff(canvasHead, renderedProviders) {
|
|
1298
|
+
(0, import_react14.useLayoutEffect)(() => {
|
|
1299
|
+
if (!isCurrentCanvasHead(canvasHead)) {
|
|
1300
|
+
return;
|
|
1301
|
+
}
|
|
1302
|
+
Object.entries(renderedProviders).forEach(([providerKey, { provider, items }]) => {
|
|
1303
|
+
if (items.length > 0 && provider.isPregeneratedLink) {
|
|
1304
|
+
removeProviderPregeneratedLinks(providerKey, provider.isPregeneratedLink);
|
|
1305
|
+
}
|
|
1306
|
+
});
|
|
1307
|
+
}, [canvasHead, renderedProviders]);
|
|
1308
|
+
}
|
|
1309
|
+
function isCurrentCanvasHead(canvasHead) {
|
|
1310
|
+
return !!canvasHead && canvasHead === (0, import_editor_v1_adapters8.getCanvasIframeDocument)()?.head;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
// src/hooks/use-style-prop-resolver.ts
|
|
1314
|
+
var import_react15 = require("react");
|
|
1315
|
+
var import_editor_styles = require("@elementor/editor-styles");
|
|
1316
|
+
var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
|
|
1298
1317
|
|
|
1299
1318
|
// src/renderers/create-props-resolver.ts
|
|
1300
1319
|
var import_editor_props = require("@elementor/editor-props");
|
|
@@ -1441,19 +1460,19 @@ var styleTransformersRegistry = createTransformersRegistry();
|
|
|
1441
1460
|
|
|
1442
1461
|
// src/hooks/use-style-prop-resolver.ts
|
|
1443
1462
|
function useStylePropResolver() {
|
|
1444
|
-
return (0,
|
|
1463
|
+
return (0, import_react15.useMemo)(() => {
|
|
1445
1464
|
return createPropsResolver({
|
|
1446
1465
|
transformers: styleTransformersRegistry,
|
|
1447
1466
|
schema: (0, import_editor_styles.getStylesSchema)(),
|
|
1448
1467
|
onPropResolve: ({ propValue, propType }) => {
|
|
1449
|
-
maybeEnqueueFontFromStyleProp(propType, propValue,
|
|
1468
|
+
maybeEnqueueFontFromStyleProp(propType, propValue, import_editor_v1_adapters9.enqueueFont);
|
|
1450
1469
|
}
|
|
1451
1470
|
});
|
|
1452
1471
|
}, []);
|
|
1453
1472
|
}
|
|
1454
1473
|
|
|
1455
1474
|
// src/hooks/use-style-renderer.ts
|
|
1456
|
-
var
|
|
1475
|
+
var import_react16 = require("react");
|
|
1457
1476
|
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
1458
1477
|
|
|
1459
1478
|
// src/renderers/create-styles-renderer.ts
|
|
@@ -1562,7 +1581,7 @@ function customCssToString(customCss) {
|
|
|
1562
1581
|
var SELECTOR_PREFIX = ".elementor";
|
|
1563
1582
|
function useStyleRenderer(resolve) {
|
|
1564
1583
|
const breakpoints = (0, import_editor_responsive.useBreakpointsMap)();
|
|
1565
|
-
return (0,
|
|
1584
|
+
return (0, import_react16.useMemo)(() => {
|
|
1566
1585
|
return createStylesRenderer({
|
|
1567
1586
|
selectorPrefix: SELECTOR_PREFIX,
|
|
1568
1587
|
breakpoints,
|
|
@@ -1572,13 +1591,13 @@ function useStyleRenderer(resolve) {
|
|
|
1572
1591
|
}
|
|
1573
1592
|
|
|
1574
1593
|
// src/hooks/use-style-items.ts
|
|
1575
|
-
function useStyleItems() {
|
|
1594
|
+
function useStyleItems(canvasHead) {
|
|
1576
1595
|
const resolve = useStylePropResolver();
|
|
1577
1596
|
const renderStyles = useStyleRenderer(resolve);
|
|
1578
1597
|
const breakpoints = (0, import_editor_responsive2.useBreakpoints)();
|
|
1579
|
-
const [styleItems, setStyleItems] = (0,
|
|
1580
|
-
const styleItemsCacheRef = (0,
|
|
1581
|
-
const providerAndSubscribers = (0,
|
|
1598
|
+
const [styleItems, setStyleItems] = (0, import_react17.useState)({});
|
|
1599
|
+
const styleItemsCacheRef = (0, import_react17.useRef)(/* @__PURE__ */ new Map());
|
|
1600
|
+
const providerAndSubscribers = (0, import_react17.useMemo)(() => {
|
|
1582
1601
|
const createEmptyCache = () => {
|
|
1583
1602
|
return { orderedIds: [], itemsById: /* @__PURE__ */ new Map() };
|
|
1584
1603
|
};
|
|
@@ -1604,7 +1623,7 @@ function useStyleItems() {
|
|
|
1604
1623
|
})
|
|
1605
1624
|
);
|
|
1606
1625
|
}, [renderStyles]);
|
|
1607
|
-
(0,
|
|
1626
|
+
(0, import_react17.useEffect)(() => {
|
|
1608
1627
|
const unsubscribes = providerAndSubscribers.map(
|
|
1609
1628
|
({ provider, subscriber }) => provider.subscribe(subscriber)
|
|
1610
1629
|
);
|
|
@@ -1613,17 +1632,18 @@ function useStyleItems() {
|
|
|
1613
1632
|
};
|
|
1614
1633
|
}, [providerAndSubscribers]);
|
|
1615
1634
|
useOnMount(() => {
|
|
1616
|
-
(0,
|
|
1635
|
+
(0, import_editor_v1_adapters10.registerDataHook)("after", "editor/documents/attach-preview", async () => {
|
|
1617
1636
|
resetRemovedProviders();
|
|
1618
1637
|
const promises = providerAndSubscribers.map(async ({ subscriber }) => subscriber());
|
|
1619
1638
|
await Promise.all(promises);
|
|
1620
1639
|
});
|
|
1621
1640
|
});
|
|
1622
|
-
|
|
1641
|
+
usePregeneratedLinksHandoff(canvasHead, styleItems);
|
|
1642
|
+
const breakpointSorter = (0, import_react17.useMemo)(
|
|
1623
1643
|
() => createBreakpointSorter(breakpoints.map((breakpoint) => breakpoint.id)),
|
|
1624
1644
|
[breakpoints]
|
|
1625
1645
|
);
|
|
1626
|
-
return (0,
|
|
1646
|
+
return (0, import_react17.useMemo)(
|
|
1627
1647
|
() => Object.values(styleItems).sort(prioritySorter).flatMap(({ items }) => items).sort(stateSorter).sort(breakpointSorter),
|
|
1628
1648
|
[styleItems, breakpointSorter]
|
|
1629
1649
|
);
|
|
@@ -1656,9 +1676,6 @@ function createProviderSubscriber2({ provider, renderStyles, setStyleItems, getC
|
|
|
1656
1676
|
const cache = getCache();
|
|
1657
1677
|
const hasDiffInfo = current !== void 0 && previous !== void 0;
|
|
1658
1678
|
const hasCache = cache.orderedIds.length > 0;
|
|
1659
|
-
if (hasCache && provider.isPregeneratedLink) {
|
|
1660
|
-
removeProviderPregeneratedLinks(provider.getKey(), provider.isPregeneratedLink);
|
|
1661
|
-
}
|
|
1662
1679
|
if (hasDiffInfo && hasCache) {
|
|
1663
1680
|
return updateItems(cache, previous, current, signal);
|
|
1664
1681
|
}
|
|
@@ -1760,7 +1777,7 @@ function rebuildCache(cache, allStyles, items) {
|
|
|
1760
1777
|
// src/components/style-renderer.tsx
|
|
1761
1778
|
function StyleRenderer() {
|
|
1762
1779
|
const container = usePortalContainer2();
|
|
1763
|
-
const styleItems = useStyleItems();
|
|
1780
|
+
const styleItems = useStyleItems(container);
|
|
1764
1781
|
const linksAttrs = useDocumentsCssLinks();
|
|
1765
1782
|
if (!container) {
|
|
1766
1783
|
return null;
|
|
@@ -1768,7 +1785,7 @@ function StyleRenderer() {
|
|
|
1768
1785
|
return /* @__PURE__ */ React9.createElement(import_ui4.Portal, { container }, filterUniqueStyleDefinitions(styleItems).map((item) => /* @__PURE__ */ React9.createElement("style", { key: `${item.id}-${item.breakpoint}-${item.state ?? "normal"}` }, item.value)), linksAttrs.map((attrs) => /* @__PURE__ */ React9.createElement("link", { ...attrs, key: attrs.id })));
|
|
1769
1786
|
}
|
|
1770
1787
|
function usePortalContainer2() {
|
|
1771
|
-
return (0,
|
|
1788
|
+
return (0, import_editor_v1_adapters11.__privateUseListenTo)((0, import_editor_v1_adapters11.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_v1_adapters11.getCanvasIframeDocument)()?.head);
|
|
1772
1789
|
}
|
|
1773
1790
|
function filterUniqueStyleDefinitions(styleItems) {
|
|
1774
1791
|
const seen = /* @__PURE__ */ new Map();
|
|
@@ -1791,7 +1808,7 @@ function filterUniqueStyleDefinitions(styleItems) {
|
|
|
1791
1808
|
|
|
1792
1809
|
// src/form-structure/enforce-form-ancestor-commands.ts
|
|
1793
1810
|
var import_editor_notifications = require("@elementor/editor-notifications");
|
|
1794
|
-
var
|
|
1811
|
+
var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
|
|
1795
1812
|
var import_i18n = require("@wordpress/i18n");
|
|
1796
1813
|
|
|
1797
1814
|
// src/form-structure/utils.ts
|
|
@@ -1893,15 +1910,15 @@ var FORM_FIELDS_OUTSIDE_ALERT = {
|
|
|
1893
1910
|
id: "form-fields-outside-form-blocked"
|
|
1894
1911
|
};
|
|
1895
1912
|
function initFormAncestorEnforcement() {
|
|
1896
|
-
(0,
|
|
1913
|
+
(0, import_editor_v1_adapters12.blockCommand)({
|
|
1897
1914
|
command: "document/elements/create",
|
|
1898
1915
|
condition: blockFormFieldCreate
|
|
1899
1916
|
});
|
|
1900
|
-
(0,
|
|
1917
|
+
(0, import_editor_v1_adapters12.blockCommand)({
|
|
1901
1918
|
command: "document/elements/move",
|
|
1902
1919
|
condition: blockFormFieldMove
|
|
1903
1920
|
});
|
|
1904
|
-
(0,
|
|
1921
|
+
(0, import_editor_v1_adapters12.blockCommand)({
|
|
1905
1922
|
command: "document/elements/paste",
|
|
1906
1923
|
condition: blockFormFieldPaste
|
|
1907
1924
|
});
|
|
@@ -1951,7 +1968,7 @@ function handleBlockedFormField() {
|
|
|
1951
1968
|
|
|
1952
1969
|
// src/form-structure/form-atom-added-hints.ts
|
|
1953
1970
|
var import_editor_notifications2 = require("@elementor/editor-notifications");
|
|
1954
|
-
var
|
|
1971
|
+
var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
|
|
1955
1972
|
var import_i18n2 = require("@wordpress/i18n");
|
|
1956
1973
|
var MOVE_COMMAND = "document/elements/move";
|
|
1957
1974
|
var FORM_ATOM_HINTS = {
|
|
@@ -1966,7 +1983,7 @@ var FORM_ATOM_HINTS = {
|
|
|
1966
1983
|
};
|
|
1967
1984
|
var notificationCounter = 0;
|
|
1968
1985
|
function initFormAtomAddedHints() {
|
|
1969
|
-
(0,
|
|
1986
|
+
(0, import_editor_v1_adapters13.registerDataHook)("after", "document/elements/create", (args, _result, options) => {
|
|
1970
1987
|
if (options?.commandsCurrentTrace?.includes(MOVE_COMMAND)) {
|
|
1971
1988
|
return;
|
|
1972
1989
|
}
|
|
@@ -1985,7 +2002,7 @@ function initFormAtomAddedHints() {
|
|
|
1985
2002
|
|
|
1986
2003
|
// src/form-structure/hidden-field-hint.ts
|
|
1987
2004
|
var import_editor_notifications3 = require("@elementor/editor-notifications");
|
|
1988
|
-
var
|
|
2005
|
+
var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
|
|
1989
2006
|
var import_i18n3 = require("@wordpress/i18n");
|
|
1990
2007
|
var MOVE_COMMAND2 = "document/elements/move";
|
|
1991
2008
|
var notificationCounter2 = 0;
|
|
@@ -1997,7 +2014,7 @@ function createHiddenFieldNotification() {
|
|
|
1997
2014
|
};
|
|
1998
2015
|
}
|
|
1999
2016
|
function initHiddenFieldHint() {
|
|
2000
|
-
(0,
|
|
2017
|
+
(0, import_editor_v1_adapters14.registerDataHook)("after", "document/elements/create", (args, _result, options) => {
|
|
2001
2018
|
if (options?.commandsCurrentTrace?.includes(MOVE_COMMAND2)) {
|
|
2002
2019
|
return;
|
|
2003
2020
|
}
|
|
@@ -2010,7 +2027,7 @@ function initHiddenFieldHint() {
|
|
|
2010
2027
|
// src/form-structure/prevent-duplicate-form-atoms-commands.ts
|
|
2011
2028
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
2012
2029
|
var import_editor_notifications4 = require("@elementor/editor-notifications");
|
|
2013
|
-
var
|
|
2030
|
+
var import_editor_v1_adapters15 = require("@elementor/editor-v1-adapters");
|
|
2014
2031
|
var import_i18n4 = require("@wordpress/i18n");
|
|
2015
2032
|
var MOVE_COMMAND3 = "document/elements/move";
|
|
2016
2033
|
var SINGLE_INSTANCE_FORM_ATOM_ALERTS = {
|
|
@@ -2027,10 +2044,10 @@ var SINGLE_INSTANCE_FORM_ATOM_ALERTS = {
|
|
|
2027
2044
|
};
|
|
2028
2045
|
var SINGLE_INSTANCE_FORM_ATOM_TYPES = Object.keys(SINGLE_INSTANCE_FORM_ATOM_ALERTS);
|
|
2029
2046
|
function initDuplicateFormAtomsPrevention() {
|
|
2030
|
-
(0,
|
|
2047
|
+
(0, import_editor_v1_adapters15.registerDataHook)("dependency", "document/elements/create", (args, options) => {
|
|
2031
2048
|
return !blockDuplicateCreate(args, options);
|
|
2032
2049
|
});
|
|
2033
|
-
(0,
|
|
2050
|
+
(0, import_editor_v1_adapters15.blockCommand)({
|
|
2034
2051
|
command: "document/elements/move",
|
|
2035
2052
|
condition: blockDuplicateMove
|
|
2036
2053
|
});
|
|
@@ -2074,7 +2091,7 @@ function formHasElementType(form, type, excluded = /* @__PURE__ */ new Set()) {
|
|
|
2074
2091
|
|
|
2075
2092
|
// src/form-structure/prevent-form-nesting-commands.ts
|
|
2076
2093
|
var import_editor_notifications5 = require("@elementor/editor-notifications");
|
|
2077
|
-
var
|
|
2094
|
+
var import_editor_v1_adapters16 = require("@elementor/editor-v1-adapters");
|
|
2078
2095
|
var import_i18n5 = require("@wordpress/i18n");
|
|
2079
2096
|
var FORM_NESTING_ALERT = {
|
|
2080
2097
|
type: "default",
|
|
@@ -2082,15 +2099,15 @@ var FORM_NESTING_ALERT = {
|
|
|
2082
2099
|
id: "form-nesting-blocked"
|
|
2083
2100
|
};
|
|
2084
2101
|
function initFormNestingPrevention() {
|
|
2085
|
-
(0,
|
|
2102
|
+
(0, import_editor_v1_adapters16.blockCommand)({
|
|
2086
2103
|
command: "document/elements/create",
|
|
2087
2104
|
condition: blockFormCreate
|
|
2088
2105
|
});
|
|
2089
|
-
(0,
|
|
2106
|
+
(0, import_editor_v1_adapters16.blockCommand)({
|
|
2090
2107
|
command: "document/elements/move",
|
|
2091
2108
|
condition: blockFormMove
|
|
2092
2109
|
});
|
|
2093
|
-
(0,
|
|
2110
|
+
(0, import_editor_v1_adapters16.blockCommand)({
|
|
2094
2111
|
command: "document/elements/paste",
|
|
2095
2112
|
condition: blockFormPaste
|
|
2096
2113
|
});
|
|
@@ -2828,7 +2845,7 @@ function initStyleTransformers() {
|
|
|
2828
2845
|
|
|
2829
2846
|
// src/legacy/init-legacy-views.ts
|
|
2830
2847
|
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
2831
|
-
var
|
|
2848
|
+
var import_editor_v1_adapters18 = require("@elementor/editor-v1-adapters");
|
|
2832
2849
|
|
|
2833
2850
|
// src/renderers/create-dom-renderer.ts
|
|
2834
2851
|
var import_twing = require("@elementor/twing");
|
|
@@ -2837,6 +2854,7 @@ function createDomRenderer() {
|
|
|
2837
2854
|
const environment = (0, import_twing.createEnvironment)(loader);
|
|
2838
2855
|
environment.registerEscapingStrategy(escapeHtmlTag, "html_tag");
|
|
2839
2856
|
environment.registerEscapingStrategy(escapeURL, "full_url");
|
|
2857
|
+
environment.registerEscapingStrategy(escapeJsIdentifier, "js_identifier");
|
|
2840
2858
|
return {
|
|
2841
2859
|
register: loader.setTemplate,
|
|
2842
2860
|
render: environment.render
|
|
@@ -2850,6 +2868,12 @@ function escapeHtmlTag(value) {
|
|
|
2850
2868
|
const normalizedTag = value?.toLowerCase?.() ?? "";
|
|
2851
2869
|
return allowedTags.includes(normalizedTag) ? value : "div";
|
|
2852
2870
|
}
|
|
2871
|
+
var JS_IDENTIFIER_PATTERN = /^[A-Za-z0-9_]+$/;
|
|
2872
|
+
function escapeJsIdentifier(value) {
|
|
2873
|
+
const id = String(value ?? "");
|
|
2874
|
+
const match = id.match(JS_IDENTIFIER_PATTERN);
|
|
2875
|
+
return match?.[0] === id ? id : "";
|
|
2876
|
+
}
|
|
2853
2877
|
function escapeURL(value) {
|
|
2854
2878
|
const allowedProtocols = ["http:", "https:", "mailto:", "tel:"];
|
|
2855
2879
|
try {
|
|
@@ -3579,7 +3603,7 @@ var import_client = require("react-dom/client");
|
|
|
3579
3603
|
var React11 = __toESM(require("react"));
|
|
3580
3604
|
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
3581
3605
|
var import_editor_props4 = require("@elementor/editor-props");
|
|
3582
|
-
var
|
|
3606
|
+
var import_editor_v1_adapters17 = require("@elementor/editor-v1-adapters");
|
|
3583
3607
|
var import_i18n6 = require("@wordpress/i18n");
|
|
3584
3608
|
|
|
3585
3609
|
// src/legacy/replacements/base.ts
|
|
@@ -3626,14 +3650,14 @@ var ReplacementBase = class {
|
|
|
3626
3650
|
|
|
3627
3651
|
// src/legacy/replacements/inline-editing/canvas-inline-editor.tsx
|
|
3628
3652
|
var React10 = __toESM(require("react"));
|
|
3629
|
-
var
|
|
3653
|
+
var import_react19 = require("react");
|
|
3630
3654
|
var import_editor_controls3 = require("@elementor/editor-controls");
|
|
3631
3655
|
var import_editor_ui = require("@elementor/editor-ui");
|
|
3632
3656
|
var import_ui5 = require("@elementor/ui");
|
|
3633
|
-
var
|
|
3657
|
+
var import_react20 = require("@floating-ui/react");
|
|
3634
3658
|
|
|
3635
3659
|
// src/legacy/replacements/inline-editing/inline-editing-utils.ts
|
|
3636
|
-
var
|
|
3660
|
+
var import_react18 = require("react");
|
|
3637
3661
|
var TOP_BAR_SELECTOR = "#elementor-editor-wrapper-v2";
|
|
3638
3662
|
var NAVIGATOR_SELECTOR = "#elementor-navigator";
|
|
3639
3663
|
var EDITING_PANEL = "#elementor-panel";
|
|
@@ -3664,8 +3688,8 @@ var getInlineEditorElement = (elementWrapper, expectedTag) => {
|
|
|
3664
3688
|
return !expectedTag ? null : elementWrapper.querySelector(expectedTag);
|
|
3665
3689
|
};
|
|
3666
3690
|
var useOnClickOutsideIframe = (handleUnmount) => {
|
|
3667
|
-
const asyncUnmountInlineEditor = (0,
|
|
3668
|
-
(0,
|
|
3691
|
+
const asyncUnmountInlineEditor = (0, import_react18.useCallback)(() => queueMicrotask(handleUnmount), [handleUnmount]);
|
|
3692
|
+
(0, import_react18.useEffect)(() => {
|
|
3669
3693
|
EDITOR_ELEMENTS_OUT_OF_IFRAME.forEach(
|
|
3670
3694
|
(selector) => document?.querySelector(selector)?.addEventListener("mousedown", asyncUnmountInlineEditor)
|
|
3671
3695
|
);
|
|
@@ -3675,8 +3699,8 @@ var useOnClickOutsideIframe = (handleUnmount) => {
|
|
|
3675
3699
|
}, []);
|
|
3676
3700
|
};
|
|
3677
3701
|
var useRenderToolbar = (ownerDocument, id) => {
|
|
3678
|
-
const [anchor, setAnchor] = (0,
|
|
3679
|
-
(0,
|
|
3702
|
+
const [anchor, setAnchor] = (0, import_react18.useState)(null);
|
|
3703
|
+
(0, import_react18.useEffect)(() => {
|
|
3680
3704
|
if (!anchor) {
|
|
3681
3705
|
removeToolbarAnchor(ownerDocument, id);
|
|
3682
3706
|
}
|
|
@@ -3690,7 +3714,7 @@ var useRenderToolbar = (ownerDocument, id) => {
|
|
|
3690
3714
|
setAnchor(null);
|
|
3691
3715
|
}
|
|
3692
3716
|
};
|
|
3693
|
-
const clearAnchor = (0,
|
|
3717
|
+
const clearAnchor = (0, import_react18.useCallback)(() => {
|
|
3694
3718
|
setAnchor(null);
|
|
3695
3719
|
}, []);
|
|
3696
3720
|
return { onSelectionEnd, anchor, clearAnchor };
|
|
@@ -3770,21 +3794,21 @@ var CanvasInlineEditor = ({
|
|
|
3770
3794
|
setValue,
|
|
3771
3795
|
requestDestroy
|
|
3772
3796
|
}) => {
|
|
3773
|
-
const [active, setActive] = (0,
|
|
3774
|
-
const [editor, setEditor] = (0,
|
|
3797
|
+
const [active, setActive] = (0, import_react19.useState)(true);
|
|
3798
|
+
const [editor, setEditor] = (0, import_react19.useState)(null);
|
|
3775
3799
|
const { onSelectionEnd, anchor: toolbarAnchor, clearAnchor } = useRenderToolbar(rootElement.ownerDocument, id);
|
|
3776
|
-
(0,
|
|
3800
|
+
(0, import_react19.useEffect)(() => {
|
|
3777
3801
|
if (!active) {
|
|
3778
3802
|
clearAnchor();
|
|
3779
3803
|
requestDestroy();
|
|
3780
3804
|
}
|
|
3781
3805
|
}, [active, clearAnchor, requestDestroy]);
|
|
3782
|
-
const dismiss = (0,
|
|
3806
|
+
const dismiss = (0, import_react19.useCallback)(() => {
|
|
3783
3807
|
setEditor(null);
|
|
3784
3808
|
setActive(false);
|
|
3785
3809
|
}, []);
|
|
3786
3810
|
useOnClickOutsideIframe(dismiss);
|
|
3787
|
-
(0,
|
|
3811
|
+
(0, import_react19.useEffect)(() => {
|
|
3788
3812
|
const ownerDocument = contentElement.ownerDocument;
|
|
3789
3813
|
const handleClickAway = (event) => {
|
|
3790
3814
|
if (contentElement.contains(event.target)) {
|
|
@@ -3823,25 +3847,25 @@ var InlineEditingOverlay = ({
|
|
|
3823
3847
|
id
|
|
3824
3848
|
}) => {
|
|
3825
3849
|
const inlineEditedElement = getInlineEditorElement(rootElement, expectedTag);
|
|
3826
|
-
const [overlayRefElement, setOverlayElement] = (0,
|
|
3827
|
-
(0,
|
|
3850
|
+
const [overlayRefElement, setOverlayElement] = (0, import_react19.useState)(inlineEditedElement);
|
|
3851
|
+
(0, import_react19.useEffect)(() => {
|
|
3828
3852
|
setOverlayElement(getInlineEditorElement(rootElement, expectedTag));
|
|
3829
3853
|
}, [expectedTag, rootElement]);
|
|
3830
3854
|
return overlayRefElement ? /* @__PURE__ */ React10.createElement(OutlineOverlay, { element: overlayRefElement, id, isSelected: true }) : null;
|
|
3831
3855
|
};
|
|
3832
3856
|
var InlineEditingToolbar = ({ anchor, editor, id }) => {
|
|
3833
|
-
const { refs, floatingStyles } = (0,
|
|
3857
|
+
const { refs, floatingStyles } = (0, import_react20.useFloating)({
|
|
3834
3858
|
placement: "top",
|
|
3835
3859
|
strategy: "fixed",
|
|
3836
3860
|
transform: false,
|
|
3837
|
-
whileElementsMounted:
|
|
3838
|
-
middleware: [horizontalShifterMiddleware, (0,
|
|
3861
|
+
whileElementsMounted: import_react20.autoUpdate,
|
|
3862
|
+
middleware: [horizontalShifterMiddleware, (0, import_react20.flip)()]
|
|
3839
3863
|
});
|
|
3840
|
-
(0,
|
|
3864
|
+
(0, import_react19.useLayoutEffect)(() => {
|
|
3841
3865
|
refs.setReference(anchor);
|
|
3842
3866
|
return () => refs.setReference(null);
|
|
3843
3867
|
}, [anchor, refs]);
|
|
3844
|
-
return /* @__PURE__ */ React10.createElement(
|
|
3868
|
+
return /* @__PURE__ */ React10.createElement(import_react20.FloatingPortal, { id: CANVAS_WRAPPER_ID }, /* @__PURE__ */ React10.createElement(
|
|
3845
3869
|
import_ui5.Box,
|
|
3846
3870
|
{
|
|
3847
3871
|
ref: refs.setFloating,
|
|
@@ -3898,7 +3922,7 @@ var InlineEditingReplacement = class extends ReplacementBase {
|
|
|
3898
3922
|
return this.editing;
|
|
3899
3923
|
}
|
|
3900
3924
|
shouldRenderReplacement() {
|
|
3901
|
-
return this.isInlineEditingEligible() && (0,
|
|
3925
|
+
return this.isInlineEditingEligible() && (0, import_editor_v1_adapters17.getCurrentEditMode)() === "edit";
|
|
3902
3926
|
}
|
|
3903
3927
|
handleRenderInlineEditor = () => {
|
|
3904
3928
|
if (this.isEditingModeActive() || !this.isInlineEditingEligible()) {
|
|
@@ -3985,7 +4009,7 @@ var InlineEditingReplacement = class extends ReplacementBase {
|
|
|
3985
4009
|
setContentValue(value) {
|
|
3986
4010
|
const settingKey = this.getInlineEditablePropertyName();
|
|
3987
4011
|
const valueToSave = this.createContentPropValue(value);
|
|
3988
|
-
(0,
|
|
4012
|
+
(0, import_editor_v1_adapters17.undoable)(
|
|
3989
4013
|
{
|
|
3990
4014
|
do: () => {
|
|
3991
4015
|
const prevValue = this.getInlineEditablePropValue();
|
|
@@ -4027,7 +4051,7 @@ var InlineEditingReplacement = class extends ReplacementBase {
|
|
|
4027
4051
|
return null;
|
|
4028
4052
|
}
|
|
4029
4053
|
runCommand(key, value) {
|
|
4030
|
-
(0,
|
|
4054
|
+
(0, import_editor_v1_adapters17.__privateRunCommandSync)(
|
|
4031
4055
|
"document/elements/set-settings",
|
|
4032
4056
|
{
|
|
4033
4057
|
container: (0, import_editor_elements8.getContainer)(this.id),
|
|
@@ -4037,7 +4061,7 @@ var InlineEditingReplacement = class extends ReplacementBase {
|
|
|
4037
4061
|
},
|
|
4038
4062
|
{ internal: true }
|
|
4039
4063
|
);
|
|
4040
|
-
(0,
|
|
4064
|
+
(0, import_editor_v1_adapters17.__privateRunCommandSync)("document/save/set-is-modified", { status: true }, { internal: true });
|
|
4041
4065
|
}
|
|
4042
4066
|
getExpectedTag() {
|
|
4043
4067
|
const tagPropType = this.getTagPropType();
|
|
@@ -4202,12 +4226,12 @@ function registerModelExtensions(type, extensions) {
|
|
|
4202
4226
|
}
|
|
4203
4227
|
function registerElementType(type, elementTypeGenerator) {
|
|
4204
4228
|
elementsLegacyTypes[type] = elementTypeGenerator;
|
|
4205
|
-
if ((0,
|
|
4229
|
+
if ((0, import_editor_v1_adapters18.__privateIsReady)()) {
|
|
4206
4230
|
registerElementInLegacyManager(type, createDomRenderer());
|
|
4207
4231
|
}
|
|
4208
4232
|
}
|
|
4209
4233
|
function initLegacyViews() {
|
|
4210
|
-
(0,
|
|
4234
|
+
(0, import_editor_v1_adapters18.__privateListenTo)((0, import_editor_v1_adapters18.v1ReadyEvent)(), () => {
|
|
4211
4235
|
const widgetsCache = (0, import_editor_elements9.getWidgetsCache)() ?? {};
|
|
4212
4236
|
const renderer = createDomRenderer();
|
|
4213
4237
|
registerProPromotionTypes(widgetsCache);
|
|
@@ -4342,7 +4366,7 @@ function initTabsModelExtensions() {
|
|
|
4342
4366
|
}
|
|
4343
4367
|
|
|
4344
4368
|
// src/mcp/canvas-mcp.ts
|
|
4345
|
-
var
|
|
4369
|
+
var import_editor_props9 = require("@elementor/editor-props");
|
|
4346
4370
|
|
|
4347
4371
|
// src/mcp/resources/available-widgets-resource.ts
|
|
4348
4372
|
var import_http_client3 = require("@elementor/http-client");
|
|
@@ -4420,7 +4444,7 @@ var initBestPracticesResource = (reg) => {
|
|
|
4420
4444
|
|
|
4421
4445
|
// src/mcp/resources/document-structure-resource.ts
|
|
4422
4446
|
var import_editor_elements10 = require("@elementor/editor-elements");
|
|
4423
|
-
var
|
|
4447
|
+
var import_editor_v1_adapters19 = require("@elementor/editor-v1-adapters");
|
|
4424
4448
|
var DOCUMENT_STRUCTURE_URI = "elementor://document/structure";
|
|
4425
4449
|
var initDocumentStructureResource = (reg) => {
|
|
4426
4450
|
const { resource, sendResourceUpdated } = reg;
|
|
@@ -4433,15 +4457,15 @@ var initDocumentStructureResource = (reg) => {
|
|
|
4433
4457
|
sendResourceUpdated({ uri: DOCUMENT_STRUCTURE_URI });
|
|
4434
4458
|
}
|
|
4435
4459
|
};
|
|
4436
|
-
(0,
|
|
4460
|
+
(0, import_editor_v1_adapters19.__privateListenTo)(
|
|
4437
4461
|
[
|
|
4438
|
-
(0,
|
|
4439
|
-
(0,
|
|
4440
|
-
(0,
|
|
4441
|
-
(0,
|
|
4442
|
-
(0,
|
|
4443
|
-
(0,
|
|
4444
|
-
(0,
|
|
4462
|
+
(0, import_editor_v1_adapters19.commandEndEvent)("document/elements/create"),
|
|
4463
|
+
(0, import_editor_v1_adapters19.commandEndEvent)("document/elements/delete"),
|
|
4464
|
+
(0, import_editor_v1_adapters19.commandEndEvent)("document/elements/move"),
|
|
4465
|
+
(0, import_editor_v1_adapters19.commandEndEvent)("document/elements/copy"),
|
|
4466
|
+
(0, import_editor_v1_adapters19.commandEndEvent)("document/elements/paste"),
|
|
4467
|
+
(0, import_editor_v1_adapters19.commandEndEvent)("editor/documents/attach-preview"),
|
|
4468
|
+
(0, import_editor_v1_adapters19.commandEndEvent)("editor/documents/switch")
|
|
4445
4469
|
],
|
|
4446
4470
|
updateDocumentStructure
|
|
4447
4471
|
);
|
|
@@ -4544,7 +4568,7 @@ var initDynamicTagsResource = (reg) => {
|
|
|
4544
4568
|
};
|
|
4545
4569
|
|
|
4546
4570
|
// src/mcp/resources/editor-state-resource.ts
|
|
4547
|
-
var
|
|
4571
|
+
var import_editor_v1_adapters20 = require("@elementor/editor-v1-adapters");
|
|
4548
4572
|
var CURRENTLY_VIEWED_SCREEN = "The user is currently viewing the Elementor editor";
|
|
4549
4573
|
var PAGE_CONTENT_CHARACTER_LIMIT = 500;
|
|
4550
4574
|
var PREVIEW_TEXT_NODE_MIN_LENGTH = 2;
|
|
@@ -4565,8 +4589,8 @@ var initEditorStateResource = (reg) => {
|
|
|
4565
4589
|
lastSerializedState = serialized;
|
|
4566
4590
|
sendResourceUpdated({ uri: EDITOR_STATE_URI });
|
|
4567
4591
|
};
|
|
4568
|
-
(0,
|
|
4569
|
-
[(0,
|
|
4592
|
+
(0, import_editor_v1_adapters20.__privateListenTo)(
|
|
4593
|
+
[(0, import_editor_v1_adapters20.commandEndEvent)("editor/documents/switch"), (0, import_editor_v1_adapters20.commandEndEvent)("editor/documents/attach-preview")],
|
|
4570
4594
|
notifyIfChanged
|
|
4571
4595
|
);
|
|
4572
4596
|
lastSerializedState = JSON.stringify(buildState());
|
|
@@ -4640,7 +4664,7 @@ function getPageTitle() {
|
|
|
4640
4664
|
}
|
|
4641
4665
|
|
|
4642
4666
|
// src/mcp/resources/general-context-resource.ts
|
|
4643
|
-
var
|
|
4667
|
+
var import_editor_v1_adapters21 = require("@elementor/editor-v1-adapters");
|
|
4644
4668
|
var GENERAL_CONTEXT_URI = "elementor://context/general";
|
|
4645
4669
|
var initGeneralContextResource = (reg) => {
|
|
4646
4670
|
const { resource, sendResourceUpdated } = reg;
|
|
@@ -4701,11 +4725,11 @@ var initGeneralContextResource = (reg) => {
|
|
|
4701
4725
|
};
|
|
4702
4726
|
}
|
|
4703
4727
|
);
|
|
4704
|
-
(0,
|
|
4728
|
+
(0, import_editor_v1_adapters21.__privateListenTo)(
|
|
4705
4729
|
[
|
|
4706
|
-
(0,
|
|
4707
|
-
(0,
|
|
4708
|
-
(0,
|
|
4730
|
+
(0, import_editor_v1_adapters21.commandEndEvent)("editor/documents/switch"),
|
|
4731
|
+
(0, import_editor_v1_adapters21.commandEndEvent)("editor/documents/attach-preview"),
|
|
4732
|
+
(0, import_editor_v1_adapters21.commandEndEvent)("document/elements/settings")
|
|
4709
4733
|
],
|
|
4710
4734
|
pushUpdateIfChanged
|
|
4711
4735
|
);
|
|
@@ -4714,7 +4738,8 @@ var initGeneralContextResource = (reg) => {
|
|
|
4714
4738
|
|
|
4715
4739
|
// src/mcp/resources/selected-element-resource.ts
|
|
4716
4740
|
var import_editor_elements11 = require("@elementor/editor-elements");
|
|
4717
|
-
var
|
|
4741
|
+
var import_editor_props6 = require("@elementor/editor-props");
|
|
4742
|
+
var import_editor_v1_adapters22 = require("@elementor/editor-v1-adapters");
|
|
4718
4743
|
var SELECTED_ELEMENT_URI = "elementor://context/selected-element";
|
|
4719
4744
|
var initSelectedElementResource = (reg) => {
|
|
4720
4745
|
const { resource, sendResourceUpdated } = reg;
|
|
@@ -4745,11 +4770,11 @@ var initSelectedElementResource = (reg) => {
|
|
|
4745
4770
|
}
|
|
4746
4771
|
publishIfChanged(readSelectionFromEditor());
|
|
4747
4772
|
};
|
|
4748
|
-
(0,
|
|
4773
|
+
(0, import_editor_v1_adapters22.__privateListenTo)(
|
|
4749
4774
|
[
|
|
4750
|
-
(0,
|
|
4751
|
-
(0,
|
|
4752
|
-
(0,
|
|
4775
|
+
(0, import_editor_v1_adapters22.commandEndEvent)("document/elements/select"),
|
|
4776
|
+
(0, import_editor_v1_adapters22.commandEndEvent)("document/elements/deselect-all"),
|
|
4777
|
+
(0, import_editor_v1_adapters22.commandEndEvent)("document/elements/settings")
|
|
4753
4778
|
],
|
|
4754
4779
|
onCommand
|
|
4755
4780
|
);
|
|
@@ -4821,13 +4846,19 @@ function getElementProperties(container, widgetType) {
|
|
|
4821
4846
|
if (!settings || typeof settings !== "object") {
|
|
4822
4847
|
return null;
|
|
4823
4848
|
}
|
|
4824
|
-
const
|
|
4849
|
+
const widgetsCache = (0, import_editor_elements11.getWidgetsCache)();
|
|
4850
|
+
const widgetConfig = widgetType ? widgetsCache?.[widgetType] : null;
|
|
4825
4851
|
const controls = widgetConfig?.controls;
|
|
4852
|
+
const schemaType = widgetType ?? container.model.get("elType") ?? null;
|
|
4853
|
+
const propsSchema = schemaType ? widgetsCache?.[schemaType]?.atomic_props_schema : void 0;
|
|
4826
4854
|
const filtered = {};
|
|
4827
4855
|
for (const [key, value] of Object.entries(settings)) {
|
|
4828
4856
|
if (value === void 0 || value === null || value === "") {
|
|
4829
4857
|
continue;
|
|
4830
4858
|
}
|
|
4859
|
+
if (import_editor_props6.Schema.isPropSensitive(propsSchema?.[key])) {
|
|
4860
|
+
continue;
|
|
4861
|
+
}
|
|
4831
4862
|
const controlDefault = controls?.[key]?.default;
|
|
4832
4863
|
if (controlDefault !== void 0 && JSON.stringify(value) === JSON.stringify(controlDefault)) {
|
|
4833
4864
|
continue;
|
|
@@ -4861,13 +4892,13 @@ function getElementDisplayName(container) {
|
|
|
4861
4892
|
// src/mcp/tools/configure-element/tool.ts
|
|
4862
4893
|
var import_editor_elements14 = require("@elementor/editor-elements");
|
|
4863
4894
|
var import_editor_mcp3 = require("@elementor/editor-mcp");
|
|
4864
|
-
var
|
|
4895
|
+
var import_editor_props8 = require("@elementor/editor-props");
|
|
4865
4896
|
|
|
4866
4897
|
// src/mcp/utils/do-update-element-property.ts
|
|
4867
4898
|
var import_editor_elements13 = require("@elementor/editor-elements");
|
|
4868
|
-
var
|
|
4899
|
+
var import_editor_props7 = require("@elementor/editor-props");
|
|
4869
4900
|
var import_editor_styles4 = require("@elementor/editor-styles");
|
|
4870
|
-
var
|
|
4901
|
+
var import_editor_v1_adapters24 = require("@elementor/editor-v1-adapters");
|
|
4871
4902
|
|
|
4872
4903
|
// src/mcp/utils/merge-custom-css.ts
|
|
4873
4904
|
var CUSTOM_CSS_SEPARATOR = "\n";
|
|
@@ -4936,11 +4967,11 @@ function resolveCanonicalPropKeys(elementType, props) {
|
|
|
4936
4967
|
}
|
|
4937
4968
|
|
|
4938
4969
|
// src/mcp/utils/resolve-dynamic-tag.ts
|
|
4939
|
-
var
|
|
4970
|
+
var import_editor_v1_adapters23 = require("@elementor/editor-v1-adapters");
|
|
4940
4971
|
var DYNAMIC_PROP_TYPE_KEY = "dynamic";
|
|
4941
4972
|
var OMITTED_DYNAMIC_SETTING_KEYS = ["fallback"];
|
|
4942
4973
|
var getAtomicDynamicTags = () => {
|
|
4943
|
-
const config = (0,
|
|
4974
|
+
const config = (0, import_editor_v1_adapters23.getElementorConfig)();
|
|
4944
4975
|
return config.atomicDynamicTags?.tags ?? {};
|
|
4945
4976
|
};
|
|
4946
4977
|
var getDynamicTagNamesByCategories = (categories) => {
|
|
@@ -5018,7 +5049,7 @@ var UnsupportedPropertyError = class extends Error {
|
|
|
5018
5049
|
};
|
|
5019
5050
|
function resolvePropValue(value, forceKey) {
|
|
5020
5051
|
const Utils = window.elementorV2.editorVariables.Utils;
|
|
5021
|
-
return
|
|
5052
|
+
return import_editor_props7.Schema.adjustLlmPropValueSchema(value, {
|
|
5022
5053
|
forceKey,
|
|
5023
5054
|
transformers: {
|
|
5024
5055
|
...Utils.globalVariablesLLMResolvers,
|
|
@@ -5077,7 +5108,7 @@ var doUpdateElementProperty = (params) => {
|
|
|
5077
5108
|
}
|
|
5078
5109
|
if (propertyRawSchema.kind === "plain") {
|
|
5079
5110
|
if (typeof propertyMapValue[stylePropName] !== "object") {
|
|
5080
|
-
const propUtil = (0,
|
|
5111
|
+
const propUtil = (0, import_editor_props7.getPropSchemaFromCache)(propertyRawSchema.key);
|
|
5081
5112
|
if (propUtil) {
|
|
5082
5113
|
const plainValue = propUtil.create(propertyMapValue[stylePropName]);
|
|
5083
5114
|
propertyMapValue[stylePropName] = plainValue;
|
|
@@ -5125,7 +5156,7 @@ var doUpdateElementProperty = (params) => {
|
|
|
5125
5156
|
}
|
|
5126
5157
|
const propKey = elementPropSchema[propertyName].key;
|
|
5127
5158
|
const value = resolvePropValue(propertyValue, propKey);
|
|
5128
|
-
const { valid, jsonSchema } =
|
|
5159
|
+
const { valid, jsonSchema } = import_editor_props7.Schema.validatePropValue(elementPropSchema[propertyName], propertyValue);
|
|
5129
5160
|
if (!valid) {
|
|
5130
5161
|
throw new Error(
|
|
5131
5162
|
`Invalid PropValue for elementId: ${elementId}. PropKey: ${propKey}, PropValue: ${JSON.stringify(
|
|
@@ -5141,7 +5172,7 @@ Expected Schema: ${jsonSchema}`
|
|
|
5141
5172
|
},
|
|
5142
5173
|
withHistory: false
|
|
5143
5174
|
});
|
|
5144
|
-
(0,
|
|
5175
|
+
(0, import_editor_v1_adapters24.__privateRunCommandSync)("document/save/set-is-modified", { status: true }, { internal: true });
|
|
5145
5176
|
};
|
|
5146
5177
|
|
|
5147
5178
|
// src/mcp/tools/configure-element/prompt.ts
|
|
@@ -5372,7 +5403,7 @@ var initConfigureElementTool = (reg) => {
|
|
|
5372
5403
|
const toUpdate = Object.entries(propertiesToUpdate);
|
|
5373
5404
|
const skippedProps = [];
|
|
5374
5405
|
for (const [propertyName, propertyValue] of toUpdate) {
|
|
5375
|
-
if (!
|
|
5406
|
+
if (!import_editor_props8.Schema.isPropKeyConfigurable(propertyName, widgetData.atomic_props_schema[propertyName])) {
|
|
5376
5407
|
throw new Error(`Not allowed to update ${propertyName}`);
|
|
5377
5408
|
}
|
|
5378
5409
|
try {
|
|
@@ -5633,7 +5664,7 @@ var initGetPageStructureTool = (reg) => {
|
|
|
5633
5664
|
|
|
5634
5665
|
// src/mcp/canvas-mcp.ts
|
|
5635
5666
|
var initCanvasMcp = (reg) => {
|
|
5636
|
-
|
|
5667
|
+
import_editor_props9.Schema.setDynamicTagNamesResolver(getDynamicTagNamesByCategories);
|
|
5637
5668
|
initWidgetsSchemaResource(reg);
|
|
5638
5669
|
initAvailableWidgetsResource(reg);
|
|
5639
5670
|
initDocumentStructureResource(reg);
|
|
@@ -5747,14 +5778,14 @@ Note: The "size" property controls image resolution/loading, not visual size. Se
|
|
|
5747
5778
|
// src/prevent-link-in-link-commands.ts
|
|
5748
5779
|
var import_editor_elements15 = require("@elementor/editor-elements");
|
|
5749
5780
|
var import_editor_notifications6 = require("@elementor/editor-notifications");
|
|
5750
|
-
var
|
|
5781
|
+
var import_editor_v1_adapters25 = require("@elementor/editor-v1-adapters");
|
|
5751
5782
|
var import_i18n7 = require("@wordpress/i18n");
|
|
5752
5783
|
function initLinkInLinkPrevention() {
|
|
5753
|
-
(0,
|
|
5784
|
+
(0, import_editor_v1_adapters25.blockCommand)({
|
|
5754
5785
|
command: "document/elements/paste",
|
|
5755
5786
|
condition: blockLinkInLinkPaste
|
|
5756
5787
|
});
|
|
5757
|
-
(0,
|
|
5788
|
+
(0, import_editor_v1_adapters25.blockCommand)({
|
|
5758
5789
|
command: "document/elements/move",
|
|
5759
5790
|
condition: blockLinkInLinkMove
|
|
5760
5791
|
});
|
|
@@ -5829,12 +5860,12 @@ function shouldBlock(sourceElements, targetElements) {
|
|
|
5829
5860
|
|
|
5830
5861
|
// src/style-commands/paste-style.ts
|
|
5831
5862
|
var import_editor_elements18 = require("@elementor/editor-elements");
|
|
5832
|
-
var
|
|
5833
|
-
var
|
|
5863
|
+
var import_editor_props11 = require("@elementor/editor-props");
|
|
5864
|
+
var import_editor_v1_adapters27 = require("@elementor/editor-v1-adapters");
|
|
5834
5865
|
|
|
5835
5866
|
// src/utils/command-utils.ts
|
|
5836
5867
|
var import_editor_elements16 = require("@elementor/editor-elements");
|
|
5837
|
-
var
|
|
5868
|
+
var import_editor_props10 = require("@elementor/editor-props");
|
|
5838
5869
|
var import_i18n8 = require("@wordpress/i18n");
|
|
5839
5870
|
function hasAtomicWidgets(args) {
|
|
5840
5871
|
const { containers = [args.container] } = args;
|
|
@@ -5852,7 +5883,7 @@ function getClassesProp(container) {
|
|
|
5852
5883
|
return null;
|
|
5853
5884
|
}
|
|
5854
5885
|
const [propKey] = Object.entries(propsSchema).find(
|
|
5855
|
-
([, propType]) => propType.kind === "plain" && propType.key ===
|
|
5886
|
+
([, propType]) => propType.kind === "plain" && propType.key === import_editor_props10.CLASSES_PROP_KEY
|
|
5856
5887
|
) ?? [];
|
|
5857
5888
|
return propKey ?? null;
|
|
5858
5889
|
}
|
|
@@ -5877,9 +5908,9 @@ function getTitleForContainers(containers) {
|
|
|
5877
5908
|
// src/style-commands/undoable-actions/paste-element-style.ts
|
|
5878
5909
|
var import_editor_elements17 = require("@elementor/editor-elements");
|
|
5879
5910
|
var import_editor_styles_repository4 = require("@elementor/editor-styles-repository");
|
|
5880
|
-
var
|
|
5911
|
+
var import_editor_v1_adapters26 = require("@elementor/editor-v1-adapters");
|
|
5881
5912
|
var import_i18n9 = require("@wordpress/i18n");
|
|
5882
|
-
var undoablePasteElementStyle = () => (0,
|
|
5913
|
+
var undoablePasteElementStyle = () => (0, import_editor_v1_adapters26.undoable)(
|
|
5883
5914
|
{
|
|
5884
5915
|
do: ({ containers, newStyle }) => {
|
|
5885
5916
|
return containers.map((container) => {
|
|
@@ -5955,12 +5986,12 @@ var undoablePasteElementStyle = () => (0, import_editor_v1_adapters25.undoable)(
|
|
|
5955
5986
|
// src/style-commands/paste-style.ts
|
|
5956
5987
|
function initPasteStyleCommand() {
|
|
5957
5988
|
const pasteElementStyleCommand = undoablePasteElementStyle();
|
|
5958
|
-
(0,
|
|
5989
|
+
(0, import_editor_v1_adapters27.blockCommand)({
|
|
5959
5990
|
command: "document/elements/paste-style",
|
|
5960
5991
|
condition: hasAtomicWidgets
|
|
5961
5992
|
});
|
|
5962
|
-
(0,
|
|
5963
|
-
(0,
|
|
5993
|
+
(0, import_editor_v1_adapters27.__privateListenTo)(
|
|
5994
|
+
(0, import_editor_v1_adapters27.commandStartEvent)("document/elements/paste-style"),
|
|
5964
5995
|
(e) => pasteStyles(e.args, pasteElementStyleCommand)
|
|
5965
5996
|
);
|
|
5966
5997
|
}
|
|
@@ -6001,8 +6032,8 @@ function pasteClasses(containers, classes) {
|
|
|
6001
6032
|
return;
|
|
6002
6033
|
}
|
|
6003
6034
|
const classesSetting = (0, import_editor_elements18.getElementSetting)(container.id, classesProp);
|
|
6004
|
-
const currentClasses =
|
|
6005
|
-
const newClasses =
|
|
6035
|
+
const currentClasses = import_editor_props11.classesPropTypeUtil.extract(classesSetting) ?? [];
|
|
6036
|
+
const newClasses = import_editor_props11.classesPropTypeUtil.create(Array.from(/* @__PURE__ */ new Set([...classes, ...currentClasses])));
|
|
6006
6037
|
(0, import_editor_elements18.updateElementSettings)({
|
|
6007
6038
|
id: container.id,
|
|
6008
6039
|
props: { [classesProp]: newClasses }
|
|
@@ -6011,14 +6042,14 @@ function pasteClasses(containers, classes) {
|
|
|
6011
6042
|
}
|
|
6012
6043
|
|
|
6013
6044
|
// src/style-commands/reset-style.ts
|
|
6014
|
-
var
|
|
6045
|
+
var import_editor_v1_adapters29 = require("@elementor/editor-v1-adapters");
|
|
6015
6046
|
|
|
6016
6047
|
// src/style-commands/undoable-actions/reset-element-style.ts
|
|
6017
6048
|
var import_editor_elements19 = require("@elementor/editor-elements");
|
|
6018
6049
|
var import_editor_styles_repository5 = require("@elementor/editor-styles-repository");
|
|
6019
|
-
var
|
|
6050
|
+
var import_editor_v1_adapters28 = require("@elementor/editor-v1-adapters");
|
|
6020
6051
|
var import_i18n10 = require("@wordpress/i18n");
|
|
6021
|
-
var undoableResetElementStyle = () => (0,
|
|
6052
|
+
var undoableResetElementStyle = () => (0, import_editor_v1_adapters28.undoable)(
|
|
6022
6053
|
{
|
|
6023
6054
|
do: ({ containers }) => {
|
|
6024
6055
|
return containers.map((container) => {
|
|
@@ -6062,12 +6093,12 @@ var undoableResetElementStyle = () => (0, import_editor_v1_adapters27.undoable)(
|
|
|
6062
6093
|
// src/style-commands/reset-style.ts
|
|
6063
6094
|
function initResetStyleCommand() {
|
|
6064
6095
|
const resetElementStyles = undoableResetElementStyle();
|
|
6065
|
-
(0,
|
|
6096
|
+
(0, import_editor_v1_adapters29.blockCommand)({
|
|
6066
6097
|
command: "document/elements/reset-style",
|
|
6067
6098
|
condition: hasAtomicWidgets
|
|
6068
6099
|
});
|
|
6069
|
-
(0,
|
|
6070
|
-
(0,
|
|
6100
|
+
(0, import_editor_v1_adapters29.__privateListenTo)(
|
|
6101
|
+
(0, import_editor_v1_adapters29.commandStartEvent)("document/elements/reset-style"),
|
|
6071
6102
|
(e) => resetStyles(e.args, resetElementStyles)
|
|
6072
6103
|
);
|
|
6073
6104
|
}
|
|
@@ -6219,15 +6250,15 @@ function getRectClipPath(rect, viewport) {
|
|
|
6219
6250
|
}
|
|
6220
6251
|
|
|
6221
6252
|
// src/hooks/use-canvas-document.ts
|
|
6222
|
-
var
|
|
6253
|
+
var import_editor_v1_adapters30 = require("@elementor/editor-v1-adapters");
|
|
6223
6254
|
function useCanvasDocument() {
|
|
6224
|
-
return (0,
|
|
6255
|
+
return (0, import_editor_v1_adapters30.__privateUseListenTo)((0, import_editor_v1_adapters30.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_v1_adapters30.getCanvasIframeDocument)());
|
|
6225
6256
|
}
|
|
6226
6257
|
|
|
6227
6258
|
// src/hooks/use-escape-on-canvas.ts
|
|
6228
|
-
var
|
|
6259
|
+
var import_react21 = require("react");
|
|
6229
6260
|
function useEscapeOnCanvas(canvasDocument, onEscape) {
|
|
6230
|
-
(0,
|
|
6261
|
+
(0, import_react21.useEffect)(() => {
|
|
6231
6262
|
if (!canvasDocument) {
|
|
6232
6263
|
return;
|
|
6233
6264
|
}
|