@elementor/editor-controls 0.25.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/index.d.mts +25 -22
- package/dist/index.d.ts +25 -22
- package/dist/index.js +45 -40
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +43 -38
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/repeater.tsx +7 -1
- package/src/control-replacements.tsx +49 -0
- package/src/controls/equal-unequal-sizes-control.tsx +0 -1
- package/src/controls/link-control.tsx +2 -1
- package/src/create-control.tsx +3 -18
- package/src/index.ts +1 -1
- package/src/create-control-replacement.tsx +0 -54
package/dist/index.mjs
CHANGED
|
@@ -193,46 +193,39 @@ var ControlFormLabel = ({ children }) => {
|
|
|
193
193
|
import * as React5 from "react";
|
|
194
194
|
import { ErrorBoundary } from "@elementor/ui";
|
|
195
195
|
|
|
196
|
-
// src/
|
|
196
|
+
// src/control-replacements.tsx
|
|
197
197
|
import * as React4 from "react";
|
|
198
198
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
199
|
-
var ControlReplacementContext = createContext3(
|
|
200
|
-
var
|
|
201
|
-
|
|
202
|
-
condition,
|
|
203
|
-
children
|
|
204
|
-
}) => {
|
|
205
|
-
return /* @__PURE__ */ React4.createElement(ControlReplacementContext.Provider, { value: { component, condition } }, children);
|
|
199
|
+
var ControlReplacementContext = createContext3([]);
|
|
200
|
+
var ControlReplacementsProvider = ({ replacements, children }) => {
|
|
201
|
+
return /* @__PURE__ */ React4.createElement(ControlReplacementContext.Provider, { value: replacements }, children);
|
|
206
202
|
};
|
|
207
|
-
var useControlReplacement = () => {
|
|
203
|
+
var useControlReplacement = (OriginalComponent) => {
|
|
208
204
|
const { value } = useBoundProp();
|
|
209
|
-
const
|
|
210
|
-
let shouldReplace = false;
|
|
205
|
+
const replacements = useContext3(ControlReplacementContext);
|
|
211
206
|
try {
|
|
212
|
-
|
|
207
|
+
const replacement = replacements.find((r) => r.condition({ value }));
|
|
208
|
+
return replacement?.component ?? OriginalComponent;
|
|
213
209
|
} catch {
|
|
210
|
+
return OriginalComponent;
|
|
214
211
|
}
|
|
215
|
-
return shouldReplace ? controlReplacement?.component : void 0;
|
|
216
212
|
};
|
|
217
|
-
var
|
|
218
|
-
|
|
219
|
-
function
|
|
220
|
-
|
|
213
|
+
var createControlReplacementsRegistry = () => {
|
|
214
|
+
const controlReplacements = [];
|
|
215
|
+
function registerControlReplacement(replacement) {
|
|
216
|
+
controlReplacements.push(replacement);
|
|
221
217
|
}
|
|
222
|
-
function
|
|
223
|
-
return
|
|
218
|
+
function getControlReplacements() {
|
|
219
|
+
return controlReplacements;
|
|
224
220
|
}
|
|
225
|
-
return {
|
|
221
|
+
return { registerControlReplacement, getControlReplacements };
|
|
226
222
|
};
|
|
227
223
|
|
|
228
224
|
// src/create-control.tsx
|
|
229
225
|
var brandSymbol = Symbol("control");
|
|
230
|
-
function createControl(
|
|
226
|
+
function createControl(Control5) {
|
|
231
227
|
return (props) => {
|
|
232
|
-
const
|
|
233
|
-
if (ControlReplacement && supportsReplacements) {
|
|
234
|
-
return /* @__PURE__ */ React5.createElement(ErrorBoundary, { fallback: null }, /* @__PURE__ */ React5.createElement(ControlReplacement, { ...props }));
|
|
235
|
-
}
|
|
228
|
+
const Component = useControlReplacement(Control5);
|
|
236
229
|
return /* @__PURE__ */ React5.createElement(ErrorBoundary, { fallback: null }, /* @__PURE__ */ React5.createElement(Component, { ...props }));
|
|
237
230
|
};
|
|
238
231
|
}
|
|
@@ -884,16 +877,28 @@ var Repeater = ({
|
|
|
884
877
|
});
|
|
885
878
|
});
|
|
886
879
|
};
|
|
887
|
-
return /* @__PURE__ */ React23.createElement(SectionContent, null, /* @__PURE__ */ React23.createElement(
|
|
888
|
-
|
|
880
|
+
return /* @__PURE__ */ React23.createElement(SectionContent, null, /* @__PURE__ */ React23.createElement(
|
|
881
|
+
Stack5,
|
|
889
882
|
{
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
883
|
+
direction: "row",
|
|
884
|
+
justifyContent: "start",
|
|
885
|
+
alignItems: "center",
|
|
886
|
+
gap: 1,
|
|
887
|
+
sx: { marginInlineEnd: -0.75 }
|
|
894
888
|
},
|
|
895
|
-
/* @__PURE__ */ React23.createElement(
|
|
896
|
-
|
|
889
|
+
/* @__PURE__ */ React23.createElement(Typography, { component: "label", variant: "caption", color: "text.secondary" }, label),
|
|
890
|
+
/* @__PURE__ */ React23.createElement(ControlAdornments, null),
|
|
891
|
+
/* @__PURE__ */ React23.createElement(
|
|
892
|
+
IconButton,
|
|
893
|
+
{
|
|
894
|
+
sx: { ml: "auto" },
|
|
895
|
+
size: SIZE,
|
|
896
|
+
onClick: addRepeaterItem,
|
|
897
|
+
"aria-label": __4("Add item", "elementor")
|
|
898
|
+
},
|
|
899
|
+
/* @__PURE__ */ React23.createElement(PlusIcon, { fontSize: SIZE })
|
|
900
|
+
)
|
|
901
|
+
), 0 < uniqueKeys.length && /* @__PURE__ */ React23.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key, index) => {
|
|
897
902
|
const value = items[index];
|
|
898
903
|
if (!value) {
|
|
899
904
|
return null;
|
|
@@ -1316,7 +1321,6 @@ function EqualUnequalSizesControl({
|
|
|
1316
1321
|
},
|
|
1317
1322
|
...bindPopover2(popupState),
|
|
1318
1323
|
slotProps: {
|
|
1319
|
-
// eslint-disable-next-line react-compiler/react-compiler
|
|
1320
1324
|
paper: { sx: { mt: 0.5, width: controlRef.current?.getBoundingClientRect().width } }
|
|
1321
1325
|
}
|
|
1322
1326
|
},
|
|
@@ -1911,7 +1915,8 @@ var LinkControl = createControl((props) => {
|
|
|
1911
1915
|
direction: "row",
|
|
1912
1916
|
sx: {
|
|
1913
1917
|
justifyContent: "space-between",
|
|
1914
|
-
alignItems: "center"
|
|
1918
|
+
alignItems: "center",
|
|
1919
|
+
marginInlineEnd: -0.75
|
|
1915
1920
|
}
|
|
1916
1921
|
},
|
|
1917
1922
|
/* @__PURE__ */ React34.createElement(ControlFormLabel, null, __9("Link", "elementor")),
|
|
@@ -1950,7 +1955,7 @@ var SwitchControl = ({ disabled }) => {
|
|
|
1950
1955
|
opacity: 0
|
|
1951
1956
|
}
|
|
1952
1957
|
} : {};
|
|
1953
|
-
return /* @__PURE__ */ React34.createElement(Grid7, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React34.createElement(Grid7, { item: true }, /* @__PURE__ */ React34.createElement(ControlFormLabel, null, __9("Open in a new tab", "elementor"))), /* @__PURE__ */ React34.createElement(Grid7, { item: true }, /* @__PURE__ */ React34.createElement(Switch, { checked: value, onClick, disabled, inputProps })));
|
|
1958
|
+
return /* @__PURE__ */ React34.createElement(Grid7, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React34.createElement(Grid7, { item: true }, /* @__PURE__ */ React34.createElement(ControlFormLabel, null, __9("Open in a new tab", "elementor"))), /* @__PURE__ */ React34.createElement(Grid7, { item: true, sx: { marginInlineEnd: -1 } }, /* @__PURE__ */ React34.createElement(Switch, { checked: value, onClick, disabled, inputProps })));
|
|
1954
1959
|
};
|
|
1955
1960
|
async function fetchOptions(ajaxUrl, params) {
|
|
1956
1961
|
if (!params || !ajaxUrl) {
|
|
@@ -2772,7 +2777,7 @@ export {
|
|
|
2772
2777
|
ControlAdornments,
|
|
2773
2778
|
ControlAdornmentsProvider,
|
|
2774
2779
|
ControlFormLabel,
|
|
2775
|
-
|
|
2780
|
+
ControlReplacementsProvider,
|
|
2776
2781
|
ControlToggleButtonGroup,
|
|
2777
2782
|
EqualUnequalSizesControl,
|
|
2778
2783
|
FontFamilyControl,
|
|
@@ -2791,7 +2796,7 @@ export {
|
|
|
2791
2796
|
TextControl,
|
|
2792
2797
|
ToggleControl,
|
|
2793
2798
|
UrlControl,
|
|
2794
|
-
|
|
2799
|
+
createControlReplacementsRegistry,
|
|
2795
2800
|
useBoundProp,
|
|
2796
2801
|
useControlActions,
|
|
2797
2802
|
useSyncExternalState
|