@elementor/editor-controls 4.0.0-683 → 4.0.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/dist/index.d.mts +137 -74
- package/dist/index.d.ts +137 -74
- package/dist/index.js +807 -172
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +781 -148
- package/dist/index.mjs.map +1 -1
- package/package.json +15 -15
- package/src/controls/email-form-action-control.tsx +5 -5
- package/src/controls/size-control/hooks/use-size-unit-keyboard.tsx +12 -1
- package/src/controls/size-control/hooks/use-size-value.ts +12 -16
- package/src/controls/size-control/size-component.tsx +38 -17
- package/src/controls/size-control/size-field.tsx +37 -13
- package/src/controls/size-control/sync/get-units.ts +15 -1
- package/src/controls/size-control/types.ts +8 -0
- package/src/controls/size-control/unstable-size-control.tsx +86 -0
- package/src/controls/size-control/utils/has-size-value.ts +5 -0
- package/src/controls/size-control/utils/resolve-bound-prop-value.ts +72 -0
- package/src/controls/size-control/utils/resolve-size-value.ts +4 -3
- package/src/controls/size-control/utils/settings/get-default-unit.ts +7 -0
- package/src/controls/size-control/utils/settings/get-prop-type-settings.ts +12 -0
- package/src/controls/size-control/utils/settings/get-size-units.ts +23 -0
- package/src/controls/size-control/utils/should-nullify-value.ts +15 -0
- package/src/controls/transition-control/data.ts +3 -3
- package/src/controls/transition-control/transition-repeater-control.tsx +8 -2
- package/src/index.ts +2 -0
- package/src/controls/size-control/utils/is-numeric-value.ts +0 -11
package/dist/index.mjs
CHANGED
|
@@ -653,14 +653,14 @@ var TextFieldInnerSelection = forwardRef2(
|
|
|
653
653
|
id
|
|
654
654
|
}, ref) => {
|
|
655
655
|
const { placeholder: boundPropPlaceholder } = useBoundProp(sizePropTypeUtil);
|
|
656
|
-
const
|
|
656
|
+
const getCursorStyle3 = () => ({
|
|
657
657
|
input: { cursor: InputProps.readOnly ? "default !important" : void 0 }
|
|
658
658
|
});
|
|
659
659
|
return /* @__PURE__ */ React17.createElement(
|
|
660
660
|
NumberInput,
|
|
661
661
|
{
|
|
662
662
|
ref,
|
|
663
|
-
sx:
|
|
663
|
+
sx: getCursorStyle3(),
|
|
664
664
|
size: "tiny",
|
|
665
665
|
fullWidth: true,
|
|
666
666
|
type,
|
|
@@ -5741,6 +5741,7 @@ import {
|
|
|
5741
5741
|
} from "@elementor/editor-props";
|
|
5742
5742
|
import { InfoCircleFilledIcon as InfoCircleFilledIcon3 } from "@elementor/icons";
|
|
5743
5743
|
import { Alert as Alert2, AlertTitle as AlertTitle3, Box as Box20, Typography as Typography8 } from "@elementor/ui";
|
|
5744
|
+
import { hasProInstalled as hasProInstalled2 } from "@elementor/utils";
|
|
5744
5745
|
import { __ as __50 } from "@wordpress/i18n";
|
|
5745
5746
|
|
|
5746
5747
|
// src/controls/selection-size-control.tsx
|
|
@@ -5794,9 +5795,9 @@ var MIN_PRO_VERSION = "3.35";
|
|
|
5794
5795
|
var getIsSiteRtl = () => {
|
|
5795
5796
|
return !!window.elementorFrontend?.config?.is_rtl;
|
|
5796
5797
|
};
|
|
5797
|
-
var
|
|
5798
|
+
var shouldShowAllTransitionProperties = () => {
|
|
5798
5799
|
if (!hasProInstalled()) {
|
|
5799
|
-
return
|
|
5800
|
+
return true;
|
|
5800
5801
|
}
|
|
5801
5802
|
const proVersion = window.elementorPro?.config?.version;
|
|
5802
5803
|
if (!proVersion) {
|
|
@@ -5933,7 +5934,7 @@ var createTransitionPropertiesList = () => {
|
|
|
5933
5934
|
]
|
|
5934
5935
|
}
|
|
5935
5936
|
];
|
|
5936
|
-
return
|
|
5937
|
+
return shouldShowAllTransitionProperties() ? baseProperties : [baseProperties[0]];
|
|
5937
5938
|
};
|
|
5938
5939
|
var transitionProperties = createTransitionPropertiesList();
|
|
5939
5940
|
var transitionsItemsList = transitionProperties.map((category) => ({
|
|
@@ -6282,6 +6283,7 @@ var TransitionRepeaterControl = createControl(
|
|
|
6282
6283
|
}) => {
|
|
6283
6284
|
const currentStyleIsNormal = currentStyleState === null;
|
|
6284
6285
|
const [recentlyUsedList, setRecentlyUsedList] = useState16([]);
|
|
6286
|
+
const proInstalled = hasProInstalled2();
|
|
6285
6287
|
const { value, setValue } = useBoundProp(childArrayPropTypeUtil);
|
|
6286
6288
|
const { allDisabled: disabledItems, proDisabled: proDisabledItems } = useMemo13(
|
|
6287
6289
|
() => getDisabledItemLabels(value),
|
|
@@ -6290,10 +6292,14 @@ var TransitionRepeaterControl = createControl(
|
|
|
6290
6292
|
const allowedTransitionSet = useMemo13(() => {
|
|
6291
6293
|
const set = /* @__PURE__ */ new Set();
|
|
6292
6294
|
transitionProperties.forEach((category) => {
|
|
6293
|
-
category.properties.forEach((prop) =>
|
|
6295
|
+
category.properties.forEach((prop) => {
|
|
6296
|
+
if (!prop.isDisabled || proInstalled) {
|
|
6297
|
+
set.add(prop.value);
|
|
6298
|
+
}
|
|
6299
|
+
});
|
|
6294
6300
|
});
|
|
6295
6301
|
return set;
|
|
6296
|
-
}, []);
|
|
6302
|
+
}, [proInstalled]);
|
|
6297
6303
|
useEffect11(() => {
|
|
6298
6304
|
if (!value || value.length === 0) {
|
|
6299
6305
|
return;
|
|
@@ -6679,7 +6685,7 @@ var SendToField = () => /* @__PURE__ */ React102.createElement(
|
|
|
6679
6685
|
EmailField,
|
|
6680
6686
|
{
|
|
6681
6687
|
bind: "to",
|
|
6682
|
-
label: __51("Send
|
|
6688
|
+
label: __51("Send to", "elementor"),
|
|
6683
6689
|
placeholder: __51("Where should we send new submissions?", "elementor")
|
|
6684
6690
|
}
|
|
6685
6691
|
);
|
|
@@ -6687,7 +6693,7 @@ var SubjectField = () => /* @__PURE__ */ React102.createElement(
|
|
|
6687
6693
|
EmailField,
|
|
6688
6694
|
{
|
|
6689
6695
|
bind: "subject",
|
|
6690
|
-
label: __51("Email
|
|
6696
|
+
label: __51("Email subject", "elementor"),
|
|
6691
6697
|
placeholder: __51("New form submission", "elementor")
|
|
6692
6698
|
}
|
|
6693
6699
|
);
|
|
@@ -6705,7 +6711,7 @@ var FromEmailField = () => /* @__PURE__ */ React102.createElement(
|
|
|
6705
6711
|
{
|
|
6706
6712
|
bind: "from",
|
|
6707
6713
|
label: __51("From email", "elementor"),
|
|
6708
|
-
placeholder: __51("What email
|
|
6714
|
+
placeholder: __51("What email should appear as the sender?", "elementor")
|
|
6709
6715
|
}
|
|
6710
6716
|
);
|
|
6711
6717
|
var FromNameField = () => /* @__PURE__ */ React102.createElement(
|
|
@@ -6719,7 +6725,7 @@ var FromNameField = () => /* @__PURE__ */ React102.createElement(
|
|
|
6719
6725
|
var ReplyToField = () => /* @__PURE__ */ React102.createElement(EmailField, { bind: "reply-to", label: __51("Reply-to", "elementor") });
|
|
6720
6726
|
var CcField = () => /* @__PURE__ */ React102.createElement(EmailField, { bind: "cc", label: __51("Cc", "elementor") });
|
|
6721
6727
|
var BccField = () => /* @__PURE__ */ React102.createElement(EmailField, { bind: "bcc", label: __51("Bcc", "elementor") });
|
|
6722
|
-
var MetaDataField = () => /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 0.5 }, /* @__PURE__ */ React102.createElement(ControlLabel, null, __51("
|
|
6728
|
+
var MetaDataField = () => /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 0.5 }, /* @__PURE__ */ React102.createElement(ControlLabel, null, __51("Metadata", "elementor")), /* @__PURE__ */ React102.createElement(
|
|
6723
6729
|
ChipsControl,
|
|
6724
6730
|
{
|
|
6725
6731
|
options: [
|
|
@@ -6743,25 +6749,650 @@ var SendAsField = () => /* @__PURE__ */ React102.createElement(PropKeyProvider,
|
|
|
6743
6749
|
var AdvancedSettings = () => /* @__PURE__ */ React102.createElement(CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React102.createElement(Box24, { sx: { pt: 2 } }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 2 }, /* @__PURE__ */ React102.createElement(FromNameField, null), /* @__PURE__ */ React102.createElement(ReplyToField, null), /* @__PURE__ */ React102.createElement(CcField, null), /* @__PURE__ */ React102.createElement(BccField, null), /* @__PURE__ */ React102.createElement(Divider5, null), /* @__PURE__ */ React102.createElement(MetaDataField, null), /* @__PURE__ */ React102.createElement(SendAsField, null))));
|
|
6744
6750
|
var EmailFormActionControl = createControl(() => {
|
|
6745
6751
|
const { value, setValue, ...propContext } = useBoundProp(emailPropTypeUtil);
|
|
6746
|
-
return /* @__PURE__ */ React102.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 2 }, /* @__PURE__ */ React102.createElement(
|
|
6752
|
+
return /* @__PURE__ */ React102.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 2 }, /* @__PURE__ */ React102.createElement(ControlLabel, null, __51("Email settings", "elementor")), /* @__PURE__ */ React102.createElement(SendToField, null), /* @__PURE__ */ React102.createElement(SubjectField, null), /* @__PURE__ */ React102.createElement(MessageField, null), /* @__PURE__ */ React102.createElement(FromEmailField, null), /* @__PURE__ */ React102.createElement(AdvancedSettings, null)));
|
|
6747
6753
|
});
|
|
6748
6754
|
|
|
6749
|
-
// src/
|
|
6755
|
+
// src/controls/size-control/unstable-size-control.tsx
|
|
6756
|
+
import * as React108 from "react";
|
|
6757
|
+
import { sizePropTypeUtil as sizePropTypeUtil6 } from "@elementor/editor-props";
|
|
6758
|
+
|
|
6759
|
+
// src/controls/size-control/size-component.tsx
|
|
6760
|
+
import * as React107 from "react";
|
|
6761
|
+
import { useEffect as useEffect15 } from "react";
|
|
6762
|
+
import { useActiveBreakpoint as useActiveBreakpoint4 } from "@elementor/editor-responsive";
|
|
6763
|
+
import { Box as Box25, usePopupState as usePopupState9 } from "@elementor/ui";
|
|
6764
|
+
|
|
6765
|
+
// src/controls/size-control/size-field.tsx
|
|
6766
|
+
import * as React105 from "react";
|
|
6767
|
+
import { MathFunctionIcon as MathFunctionIcon3 } from "@elementor/icons";
|
|
6768
|
+
import { InputAdornment as InputAdornment5 } from "@elementor/ui";
|
|
6769
|
+
|
|
6770
|
+
// src/controls/size-control/sync/get-units.ts
|
|
6771
|
+
var getLengthUnits = () => {
|
|
6772
|
+
return window.elementor?.config?.size_units?.length ?? [];
|
|
6773
|
+
};
|
|
6774
|
+
var getAngleUnits = () => {
|
|
6775
|
+
return window.elementor?.config?.size_units?.angle ?? [];
|
|
6776
|
+
};
|
|
6777
|
+
var getTimeUnits = () => {
|
|
6778
|
+
return window.elementor?.config?.size_units?.time ?? [];
|
|
6779
|
+
};
|
|
6780
|
+
var getExtendedUnits = () => {
|
|
6781
|
+
return window.elementor?.config?.size_units?.extended_units ?? [];
|
|
6782
|
+
};
|
|
6783
|
+
|
|
6784
|
+
// src/controls/size-control/utils/is-extended-unit.ts
|
|
6785
|
+
var isExtendedUnit = (unit) => {
|
|
6786
|
+
const extendedUnits = getExtendedUnits();
|
|
6787
|
+
return extendedUnits.includes(unit);
|
|
6788
|
+
};
|
|
6789
|
+
|
|
6790
|
+
// src/controls/size-control/hooks/use-size-unit-keyboard.tsx
|
|
6791
|
+
var UNIT_KEY_PATTERN = /^[a-zA-Z%]$/;
|
|
6792
|
+
var useSizeUnitKeyboard = ({ unit, units: units2, onUnitChange }) => {
|
|
6793
|
+
const { appendKey, startsWith } = useTypingBuffer();
|
|
6794
|
+
const onUnitKeyDown = (event) => {
|
|
6795
|
+
if (units2.length === 0) {
|
|
6796
|
+
return;
|
|
6797
|
+
}
|
|
6798
|
+
const { key, altKey, ctrlKey, metaKey } = event;
|
|
6799
|
+
if (altKey || ctrlKey || metaKey) {
|
|
6800
|
+
return;
|
|
6801
|
+
}
|
|
6802
|
+
if (isExtendedUnit(unit) && isNumericValue(key)) {
|
|
6803
|
+
const [defaultUnit] = units2;
|
|
6804
|
+
if (defaultUnit) {
|
|
6805
|
+
onUnitChange(defaultUnit);
|
|
6806
|
+
}
|
|
6807
|
+
return;
|
|
6808
|
+
}
|
|
6809
|
+
if (!UNIT_KEY_PATTERN.test(key)) {
|
|
6810
|
+
return;
|
|
6811
|
+
}
|
|
6812
|
+
event.preventDefault();
|
|
6813
|
+
const updatedBuffer = appendKey(key.toLowerCase());
|
|
6814
|
+
const matchedUnit = units2.find((u) => startsWith(u, updatedBuffer));
|
|
6815
|
+
if (matchedUnit) {
|
|
6816
|
+
onUnitChange(matchedUnit);
|
|
6817
|
+
}
|
|
6818
|
+
};
|
|
6819
|
+
return { onUnitKeyDown };
|
|
6820
|
+
};
|
|
6821
|
+
var isNumericValue = (value) => {
|
|
6822
|
+
if (typeof value === "number") {
|
|
6823
|
+
return !isNaN(value);
|
|
6824
|
+
}
|
|
6825
|
+
if (typeof value === "string") {
|
|
6826
|
+
return value.trim() !== "" && !isNaN(Number(value));
|
|
6827
|
+
}
|
|
6828
|
+
return false;
|
|
6829
|
+
};
|
|
6830
|
+
|
|
6831
|
+
// src/controls/size-control/hooks/use-size-value.ts
|
|
6832
|
+
import { useMemo as useMemo15 } from "react";
|
|
6833
|
+
|
|
6834
|
+
// src/controls/size-control/utils/resolve-size-value.ts
|
|
6835
|
+
var DEFAULT_SIZE2 = "";
|
|
6836
|
+
var EXTENDED_UNITS = {
|
|
6837
|
+
auto: "auto",
|
|
6838
|
+
custom: "custom"
|
|
6839
|
+
};
|
|
6840
|
+
var resolveSizeValue = (value, context) => {
|
|
6841
|
+
if (!value) {
|
|
6842
|
+
return value;
|
|
6843
|
+
}
|
|
6844
|
+
const { units: units2, defaultUnit } = context;
|
|
6845
|
+
const unit = resolveFallbackUnit(value.unit, units2, defaultUnit);
|
|
6846
|
+
if (unit === EXTENDED_UNITS.auto) {
|
|
6847
|
+
return { size: DEFAULT_SIZE2, unit };
|
|
6848
|
+
}
|
|
6849
|
+
if (unit === EXTENDED_UNITS.custom) {
|
|
6850
|
+
return { size: String(value.size ?? DEFAULT_SIZE2), unit };
|
|
6851
|
+
}
|
|
6852
|
+
return {
|
|
6853
|
+
size: sanitizeSize(value.size) ?? DEFAULT_SIZE2,
|
|
6854
|
+
unit
|
|
6855
|
+
};
|
|
6856
|
+
};
|
|
6857
|
+
var resolveSizeOnUnitChange = (size, unit) => {
|
|
6858
|
+
return isExtendedUnit(unit) ? DEFAULT_SIZE2 : size;
|
|
6859
|
+
};
|
|
6860
|
+
var createDefaultSizeValue = (units2, defaultUnit) => {
|
|
6861
|
+
let [unit] = units2;
|
|
6862
|
+
if (defaultUnit !== void 0) {
|
|
6863
|
+
unit = resolveFallbackUnit(defaultUnit, units2);
|
|
6864
|
+
}
|
|
6865
|
+
return { size: DEFAULT_SIZE2, unit };
|
|
6866
|
+
};
|
|
6867
|
+
var resolveFallbackUnit = (unit, units2, defaultUnit) => {
|
|
6868
|
+
if (units2.includes(unit)) {
|
|
6869
|
+
return unit;
|
|
6870
|
+
}
|
|
6871
|
+
if (defaultUnit && units2.includes(defaultUnit)) {
|
|
6872
|
+
return defaultUnit;
|
|
6873
|
+
}
|
|
6874
|
+
return units2[0] ?? "";
|
|
6875
|
+
};
|
|
6876
|
+
var sanitizeSize = (size) => {
|
|
6877
|
+
if (typeof size === "number" && isNaN(size)) {
|
|
6878
|
+
return DEFAULT_SIZE2;
|
|
6879
|
+
}
|
|
6880
|
+
return size;
|
|
6881
|
+
};
|
|
6882
|
+
|
|
6883
|
+
// src/controls/size-control/hooks/use-size-value.ts
|
|
6884
|
+
var useSizeValue = ({
|
|
6885
|
+
value,
|
|
6886
|
+
setValue,
|
|
6887
|
+
units: units2,
|
|
6888
|
+
defaultUnit
|
|
6889
|
+
}) => {
|
|
6890
|
+
const resolvedValue = useMemo15(
|
|
6891
|
+
() => resolveSizeValue(value, { units: units2, defaultUnit }),
|
|
6892
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6893
|
+
[value?.size, value?.unit, defaultUnit]
|
|
6894
|
+
);
|
|
6895
|
+
const [sizeValue, setSizeValue] = useSyncExternalState({
|
|
6896
|
+
external: resolvedValue,
|
|
6897
|
+
setExternal: (newState, options, meta) => {
|
|
6898
|
+
if (newState !== null) {
|
|
6899
|
+
setValue(newState, options, meta);
|
|
6900
|
+
}
|
|
6901
|
+
},
|
|
6902
|
+
persistWhen: (next) => hasChanged(next, resolvedValue),
|
|
6903
|
+
fallback: () => createDefaultSizeValue(units2, defaultUnit)
|
|
6904
|
+
});
|
|
6905
|
+
const setSize = (newSize, isInputValid = true) => {
|
|
6906
|
+
if (isExtendedUnit(sizeValue.unit)) {
|
|
6907
|
+
return;
|
|
6908
|
+
}
|
|
6909
|
+
const trimmed = newSize.trim();
|
|
6910
|
+
const parsed = Number(trimmed);
|
|
6911
|
+
const newState = {
|
|
6912
|
+
...sizeValue,
|
|
6913
|
+
size: trimmed && !isNaN(parsed) ? parsed : ""
|
|
6914
|
+
};
|
|
6915
|
+
setSizeValue(newState, void 0, { validation: () => isInputValid });
|
|
6916
|
+
};
|
|
6917
|
+
const setUnit = (unit) => {
|
|
6918
|
+
setSizeValue({ unit, size: resolveSizeOnUnitChange(sizeValue.size, unit) });
|
|
6919
|
+
};
|
|
6920
|
+
return {
|
|
6921
|
+
size: sizeValue.size,
|
|
6922
|
+
unit: sizeValue.unit,
|
|
6923
|
+
setSize,
|
|
6924
|
+
setUnit
|
|
6925
|
+
};
|
|
6926
|
+
};
|
|
6927
|
+
var hasChanged = (next, current) => {
|
|
6928
|
+
return next?.size !== current?.size || next?.unit !== current?.unit;
|
|
6929
|
+
};
|
|
6930
|
+
|
|
6931
|
+
// src/controls/size-control/ui/size-input.tsx
|
|
6932
|
+
import * as React103 from "react";
|
|
6933
|
+
import { forwardRef as forwardRef11 } from "react";
|
|
6934
|
+
var SizeInput2 = forwardRef11(
|
|
6935
|
+
({
|
|
6936
|
+
id,
|
|
6937
|
+
type,
|
|
6938
|
+
value,
|
|
6939
|
+
onBlur,
|
|
6940
|
+
onKeyUp,
|
|
6941
|
+
focused,
|
|
6942
|
+
disabled,
|
|
6943
|
+
onChange,
|
|
6944
|
+
onKeyDown,
|
|
6945
|
+
InputProps,
|
|
6946
|
+
inputProps,
|
|
6947
|
+
placeholder
|
|
6948
|
+
}, ref) => {
|
|
6949
|
+
return /* @__PURE__ */ React103.createElement(
|
|
6950
|
+
NumberInput,
|
|
6951
|
+
{
|
|
6952
|
+
id,
|
|
6953
|
+
ref,
|
|
6954
|
+
size: "tiny",
|
|
6955
|
+
fullWidth: true,
|
|
6956
|
+
type,
|
|
6957
|
+
value,
|
|
6958
|
+
placeholder,
|
|
6959
|
+
onKeyUp,
|
|
6960
|
+
focused,
|
|
6961
|
+
disabled,
|
|
6962
|
+
onKeyDown,
|
|
6963
|
+
onInput: onChange,
|
|
6964
|
+
onBlur,
|
|
6965
|
+
InputProps,
|
|
6966
|
+
inputProps,
|
|
6967
|
+
sx: getCursorStyle(InputProps?.readOnly ?? false)
|
|
6968
|
+
}
|
|
6969
|
+
);
|
|
6970
|
+
}
|
|
6971
|
+
);
|
|
6972
|
+
var getCursorStyle = (readOnly) => ({
|
|
6973
|
+
input: { cursor: readOnly ? "default !important" : void 0 }
|
|
6974
|
+
});
|
|
6975
|
+
|
|
6976
|
+
// src/controls/size-control/ui/unit-selector.tsx
|
|
6750
6977
|
import * as React104 from "react";
|
|
6751
|
-
import {
|
|
6978
|
+
import { useId as useId3 } from "react";
|
|
6979
|
+
import { MenuListItem as MenuListItem7 } from "@elementor/editor-ui";
|
|
6980
|
+
import { bindMenu as bindMenu2, bindTrigger as bindTrigger6, Button as Button6, Menu as Menu3, styled as styled9, usePopupState as usePopupState8 } from "@elementor/ui";
|
|
6981
|
+
var menuItemContentStyles = {
|
|
6982
|
+
display: "flex",
|
|
6983
|
+
flexDirection: "column",
|
|
6984
|
+
justifyContent: "center"
|
|
6985
|
+
};
|
|
6986
|
+
var UnitSelector = ({
|
|
6987
|
+
value,
|
|
6988
|
+
isActive,
|
|
6989
|
+
onSelect,
|
|
6990
|
+
options,
|
|
6991
|
+
disabled,
|
|
6992
|
+
menuItemsAttributes = {},
|
|
6993
|
+
optionLabelOverrides = {}
|
|
6994
|
+
}) => {
|
|
6995
|
+
const popupState = usePopupState8({
|
|
6996
|
+
variant: "popover",
|
|
6997
|
+
popupId: useId3()
|
|
6998
|
+
});
|
|
6999
|
+
const handleMenuItemClick = (option) => {
|
|
7000
|
+
onSelect(option);
|
|
7001
|
+
popupState.close();
|
|
7002
|
+
};
|
|
7003
|
+
return /* @__PURE__ */ React104.createElement(React104.Fragment, null, /* @__PURE__ */ React104.createElement(StyledButton2, { isActive, disabled, size: "small", ...bindTrigger6(popupState) }, optionLabelOverrides[value] ?? value), /* @__PURE__ */ React104.createElement(Menu3, { MenuListProps: { dense: true }, ...bindMenu2(popupState) }, options.map((option) => /* @__PURE__ */ React104.createElement(
|
|
7004
|
+
MenuListItem7,
|
|
7005
|
+
{
|
|
7006
|
+
key: option,
|
|
7007
|
+
onClick: () => handleMenuItemClick(option),
|
|
7008
|
+
...menuItemsAttributes?.[option],
|
|
7009
|
+
primaryTypographyProps: {
|
|
7010
|
+
variant: "caption",
|
|
7011
|
+
sx: {
|
|
7012
|
+
...menuItemContentStyles,
|
|
7013
|
+
lineHeight: "1"
|
|
7014
|
+
}
|
|
7015
|
+
},
|
|
7016
|
+
menuItemTextProps: {
|
|
7017
|
+
sx: menuItemContentStyles
|
|
7018
|
+
}
|
|
7019
|
+
},
|
|
7020
|
+
optionLabelOverrides[option] ?? option.toUpperCase()
|
|
7021
|
+
))));
|
|
7022
|
+
};
|
|
7023
|
+
var StyledButton2 = styled9(Button6, {
|
|
7024
|
+
shouldForwardProp: (prop) => prop !== "isActive"
|
|
7025
|
+
})(({ isActive, theme }) => ({
|
|
7026
|
+
color: isActive ? theme.palette.text.primary : theme.palette.text.tertiary,
|
|
7027
|
+
font: "inherit",
|
|
7028
|
+
minWidth: "initial",
|
|
7029
|
+
textTransform: "uppercase"
|
|
7030
|
+
}));
|
|
7031
|
+
|
|
7032
|
+
// src/controls/size-control/utils/has-size-value.ts
|
|
7033
|
+
var hasSizeValue = (size) => {
|
|
7034
|
+
return Boolean(size) || size === 0;
|
|
7035
|
+
};
|
|
7036
|
+
|
|
7037
|
+
// src/controls/size-control/size-field.tsx
|
|
7038
|
+
var UNIT_DISPLAY_LABELS_OVERRIDES = {
|
|
7039
|
+
custom: /* @__PURE__ */ React105.createElement(MathFunctionIcon3, { fontSize: "tiny" })
|
|
7040
|
+
};
|
|
7041
|
+
var SizeField = ({
|
|
7042
|
+
value,
|
|
7043
|
+
focused,
|
|
7044
|
+
disabled,
|
|
7045
|
+
InputProps,
|
|
7046
|
+
defaultUnit,
|
|
7047
|
+
placeholder,
|
|
7048
|
+
onUnitChange,
|
|
7049
|
+
startIcon,
|
|
7050
|
+
ariaLabel,
|
|
7051
|
+
onKeyDown,
|
|
7052
|
+
setValue,
|
|
7053
|
+
onBlur,
|
|
7054
|
+
units: units2,
|
|
7055
|
+
min,
|
|
7056
|
+
unitSelectorProps
|
|
7057
|
+
}) => {
|
|
7058
|
+
const { size, unit, setSize, setUnit } = useSizeValue({ value, setValue, units: units2, defaultUnit });
|
|
7059
|
+
const handleUnitChange = (newUnit) => {
|
|
7060
|
+
setUnit(newUnit);
|
|
7061
|
+
onUnitChange?.(newUnit);
|
|
7062
|
+
};
|
|
7063
|
+
const { onUnitKeyDown } = useSizeUnitKeyboard({ unit, onUnitChange: handleUnitChange, units: units2 });
|
|
7064
|
+
const handleKeyDown = (event) => {
|
|
7065
|
+
onUnitKeyDown(event);
|
|
7066
|
+
onKeyDown?.(event);
|
|
7067
|
+
};
|
|
7068
|
+
const handleChange = (event) => {
|
|
7069
|
+
const newSize = event.target.value;
|
|
7070
|
+
const isInputValid = event.target.validity.valid;
|
|
7071
|
+
setSize(newSize, isInputValid);
|
|
7072
|
+
};
|
|
7073
|
+
const inputType = isExtendedUnit(unit) ? "text" : "number";
|
|
7074
|
+
return /* @__PURE__ */ React105.createElement(
|
|
7075
|
+
SizeInput2,
|
|
7076
|
+
{
|
|
7077
|
+
disabled,
|
|
7078
|
+
focused,
|
|
7079
|
+
type: inputType,
|
|
7080
|
+
value: size,
|
|
7081
|
+
placeholder,
|
|
7082
|
+
onBlur,
|
|
7083
|
+
onKeyDown: handleKeyDown,
|
|
7084
|
+
onChange: handleChange,
|
|
7085
|
+
InputProps: {
|
|
7086
|
+
...InputProps,
|
|
7087
|
+
autoComplete: "off",
|
|
7088
|
+
readOnly: isExtendedUnit(unit),
|
|
7089
|
+
startAdornment: startIcon && /* @__PURE__ */ React105.createElement(InputAdornment5, { position: "start", disabled }, startIcon),
|
|
7090
|
+
endAdornment: /* @__PURE__ */ React105.createElement(InputAdornment5, { position: "end" }, /* @__PURE__ */ React105.createElement(
|
|
7091
|
+
UnitSelector,
|
|
7092
|
+
{
|
|
7093
|
+
options: units2,
|
|
7094
|
+
value: unit,
|
|
7095
|
+
onSelect: handleUnitChange,
|
|
7096
|
+
isActive: unitSelectorProps?.isActive ?? hasSizeValue(size),
|
|
7097
|
+
...unitSelectorProps,
|
|
7098
|
+
optionLabelOverrides: UNIT_DISPLAY_LABELS_OVERRIDES
|
|
7099
|
+
}
|
|
7100
|
+
))
|
|
7101
|
+
},
|
|
7102
|
+
inputProps: { min, step: "any", "arial-label": ariaLabel }
|
|
7103
|
+
}
|
|
7104
|
+
);
|
|
7105
|
+
};
|
|
7106
|
+
|
|
7107
|
+
// src/controls/size-control/ui/text-field-popover.tsx
|
|
7108
|
+
import * as React106 from "react";
|
|
7109
|
+
import { useEffect as useEffect14, useRef as useRef25 } from "react";
|
|
7110
|
+
import { PopoverHeader as PopoverHeader4 } from "@elementor/editor-ui";
|
|
7111
|
+
import { MathFunctionIcon as MathFunctionIcon4 } from "@elementor/icons";
|
|
7112
|
+
import { bindPopover as bindPopover7, Popover as Popover7, TextField as TextField9 } from "@elementor/ui";
|
|
7113
|
+
import { __ as __52 } from "@wordpress/i18n";
|
|
7114
|
+
var SIZE10 = "tiny";
|
|
7115
|
+
var TextFieldPopover2 = ({ popupState, anchorRef, value, onChange, onClose }) => {
|
|
7116
|
+
const inputRef = useRef25(null);
|
|
7117
|
+
useEffect14(() => {
|
|
7118
|
+
if (popupState.isOpen) {
|
|
7119
|
+
requestAnimationFrame(() => {
|
|
7120
|
+
if (inputRef.current) {
|
|
7121
|
+
inputRef.current.focus();
|
|
7122
|
+
}
|
|
7123
|
+
});
|
|
7124
|
+
}
|
|
7125
|
+
}, [popupState.isOpen]);
|
|
7126
|
+
const handleKeyDown = (event) => {
|
|
7127
|
+
if (event.key.toLowerCase() === "enter") {
|
|
7128
|
+
handleClose();
|
|
7129
|
+
}
|
|
7130
|
+
};
|
|
7131
|
+
const handleClose = () => {
|
|
7132
|
+
onClose?.();
|
|
7133
|
+
popupState.close();
|
|
7134
|
+
};
|
|
7135
|
+
return /* @__PURE__ */ React106.createElement(
|
|
7136
|
+
Popover7,
|
|
7137
|
+
{
|
|
7138
|
+
disablePortal: true,
|
|
7139
|
+
slotProps: {
|
|
7140
|
+
paper: {
|
|
7141
|
+
sx: {
|
|
7142
|
+
borderRadius: 2,
|
|
7143
|
+
width: anchorRef.current?.offsetWidth + "px"
|
|
7144
|
+
}
|
|
7145
|
+
}
|
|
7146
|
+
},
|
|
7147
|
+
...bindPopover7(popupState),
|
|
7148
|
+
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
7149
|
+
transformOrigin: { vertical: "top", horizontal: "center" },
|
|
7150
|
+
onClose: handleClose
|
|
7151
|
+
},
|
|
7152
|
+
/* @__PURE__ */ React106.createElement(
|
|
7153
|
+
PopoverHeader4,
|
|
7154
|
+
{
|
|
7155
|
+
title: __52("CSS function", "elementor"),
|
|
7156
|
+
onClose: handleClose,
|
|
7157
|
+
icon: /* @__PURE__ */ React106.createElement(MathFunctionIcon4, { fontSize: SIZE10 })
|
|
7158
|
+
}
|
|
7159
|
+
),
|
|
7160
|
+
/* @__PURE__ */ React106.createElement(
|
|
7161
|
+
TextField9,
|
|
7162
|
+
{
|
|
7163
|
+
value,
|
|
7164
|
+
onChange,
|
|
7165
|
+
onKeyDown: handleKeyDown,
|
|
7166
|
+
size: "tiny",
|
|
7167
|
+
type: "text",
|
|
7168
|
+
fullWidth: true,
|
|
7169
|
+
inputProps: {
|
|
7170
|
+
ref: inputRef
|
|
7171
|
+
},
|
|
7172
|
+
sx: { pt: 0, pr: 1.5, pb: 1.5, pl: 1.5 }
|
|
7173
|
+
}
|
|
7174
|
+
)
|
|
7175
|
+
);
|
|
7176
|
+
};
|
|
7177
|
+
|
|
7178
|
+
// src/controls/size-control/size-component.tsx
|
|
7179
|
+
var SizeComponent = ({
|
|
7180
|
+
anchorRef,
|
|
7181
|
+
isUnitActive,
|
|
7182
|
+
SizeFieldWrapper = React107.Fragment,
|
|
7183
|
+
...sizeFieldProps
|
|
7184
|
+
}) => {
|
|
7185
|
+
const popupState = usePopupState9({ variant: "popover" });
|
|
7186
|
+
const activeBreakpoint = useActiveBreakpoint4();
|
|
7187
|
+
const isCustomUnit = sizeFieldProps?.value?.unit === EXTENDED_UNITS.custom;
|
|
7188
|
+
const hasCustomUnitOption = sizeFieldProps.units.includes(EXTENDED_UNITS.custom);
|
|
7189
|
+
useEffect15(() => {
|
|
7190
|
+
if (popupState && popupState.isOpen) {
|
|
7191
|
+
popupState.close();
|
|
7192
|
+
}
|
|
7193
|
+
}, [activeBreakpoint]);
|
|
7194
|
+
const handleCustomSizeChange = (event) => {
|
|
7195
|
+
sizeFieldProps.setValue({
|
|
7196
|
+
size: event.target.value,
|
|
7197
|
+
unit: EXTENDED_UNITS.custom
|
|
7198
|
+
});
|
|
7199
|
+
};
|
|
7200
|
+
const handleSizeFieldClick = (event) => {
|
|
7201
|
+
if (event.target.closest("input") && isCustomUnit) {
|
|
7202
|
+
popupState.open(anchorRef?.current);
|
|
7203
|
+
}
|
|
7204
|
+
};
|
|
7205
|
+
const handleUnitChange = (unit) => {
|
|
7206
|
+
if (unit === EXTENDED_UNITS.custom && anchorRef?.current) {
|
|
7207
|
+
popupState.open(anchorRef.current);
|
|
7208
|
+
}
|
|
7209
|
+
};
|
|
7210
|
+
const popupAttributes = {
|
|
7211
|
+
"aria-controls": popupState.isOpen ? popupState.popupId : void 0,
|
|
7212
|
+
"aria-haspopup": true
|
|
7213
|
+
};
|
|
7214
|
+
return /* @__PURE__ */ React107.createElement(React107.Fragment, null, /* @__PURE__ */ React107.createElement(SizeFieldWrapper, null, /* @__PURE__ */ React107.createElement(Box25, null, /* @__PURE__ */ React107.createElement(
|
|
7215
|
+
SizeField,
|
|
7216
|
+
{
|
|
7217
|
+
focused: popupState.isOpen ? true : void 0,
|
|
7218
|
+
onUnitChange: handleUnitChange,
|
|
7219
|
+
InputProps: {
|
|
7220
|
+
...popupAttributes,
|
|
7221
|
+
onClick: handleSizeFieldClick
|
|
7222
|
+
},
|
|
7223
|
+
unitSelectorProps: {
|
|
7224
|
+
menuItemsAttributes: hasCustomUnitOption ? { custom: popupAttributes } : void 0,
|
|
7225
|
+
isActive: isUnitActive
|
|
7226
|
+
},
|
|
7227
|
+
...sizeFieldProps
|
|
7228
|
+
}
|
|
7229
|
+
))), popupState.isOpen && anchorRef?.current && /* @__PURE__ */ React107.createElement(
|
|
7230
|
+
TextFieldPopover2,
|
|
7231
|
+
{
|
|
7232
|
+
popupState,
|
|
7233
|
+
anchorRef,
|
|
7234
|
+
value: String(sizeFieldProps?.value?.size ?? ""),
|
|
7235
|
+
onChange: handleCustomSizeChange,
|
|
7236
|
+
onClose: () => {
|
|
7237
|
+
}
|
|
7238
|
+
}
|
|
7239
|
+
));
|
|
7240
|
+
};
|
|
7241
|
+
|
|
7242
|
+
// src/controls/size-control/utils/resolve-bound-prop-value.ts
|
|
7243
|
+
import { sizePropTypeUtil as sizePropTypeUtil5 } from "@elementor/editor-props";
|
|
7244
|
+
var resolveBoundPropValue = (value, boundPropPlaceholder, propPlaceholder) => {
|
|
7245
|
+
let sizeValue = null;
|
|
7246
|
+
if (validateSizeValue(value)) {
|
|
7247
|
+
sizeValue = value;
|
|
7248
|
+
} else if (validateSizeValue(boundPropPlaceholder)) {
|
|
7249
|
+
sizeValue = { size: "", unit: boundPropPlaceholder?.unit };
|
|
7250
|
+
}
|
|
7251
|
+
return {
|
|
7252
|
+
sizeValue,
|
|
7253
|
+
isUnitHighlighted: shouldHighlightUnit(value),
|
|
7254
|
+
placeholder: resolvePlaceholder(propPlaceholder, boundPropPlaceholder)
|
|
7255
|
+
};
|
|
7256
|
+
};
|
|
7257
|
+
var validateSizeValue = (value) => {
|
|
7258
|
+
if (!value) {
|
|
7259
|
+
return false;
|
|
7260
|
+
}
|
|
7261
|
+
const sizePropValue = sizePropTypeUtil5.create(value);
|
|
7262
|
+
return sizePropTypeUtil5.isValid(sizePropValue);
|
|
7263
|
+
};
|
|
7264
|
+
var resolvePlaceholder = (propPlaceholder, boundPropPlaceholder) => {
|
|
7265
|
+
if (propPlaceholder) {
|
|
7266
|
+
return propPlaceholder;
|
|
7267
|
+
}
|
|
7268
|
+
const size = boundPropPlaceholder?.size;
|
|
7269
|
+
if (size === void 0) {
|
|
7270
|
+
return void 0;
|
|
7271
|
+
}
|
|
7272
|
+
if (typeof size === "number") {
|
|
7273
|
+
return size.toString();
|
|
7274
|
+
}
|
|
7275
|
+
return size;
|
|
7276
|
+
};
|
|
7277
|
+
var shouldHighlightUnit = (value) => {
|
|
7278
|
+
if (!value) {
|
|
7279
|
+
return false;
|
|
7280
|
+
}
|
|
7281
|
+
if (value.unit === EXTENDED_UNITS.auto) {
|
|
7282
|
+
return true;
|
|
7283
|
+
}
|
|
7284
|
+
return hasSizeValue(value.size);
|
|
7285
|
+
};
|
|
7286
|
+
|
|
7287
|
+
// src/controls/size-control/utils/settings/get-prop-type-settings.ts
|
|
7288
|
+
var getPropTypeSettings = (propType) => {
|
|
7289
|
+
return propType.settings;
|
|
7290
|
+
};
|
|
7291
|
+
|
|
7292
|
+
// src/controls/size-control/utils/settings/get-default-unit.ts
|
|
7293
|
+
var getDefaultUnit = (propType) => {
|
|
7294
|
+
return getPropTypeSettings(propType)?.default_unit;
|
|
7295
|
+
};
|
|
7296
|
+
|
|
7297
|
+
// src/controls/size-control/utils/settings/get-size-units.ts
|
|
7298
|
+
var getVariantUnits = (variant) => {
|
|
7299
|
+
const map = {
|
|
7300
|
+
length: getLengthUnits,
|
|
7301
|
+
angle: getAngleUnits,
|
|
7302
|
+
time: getTimeUnits
|
|
7303
|
+
};
|
|
7304
|
+
return map[variant]();
|
|
7305
|
+
};
|
|
7306
|
+
var getSettingsUnits = (propType) => {
|
|
7307
|
+
return getPropTypeSettings(propType)?.units;
|
|
7308
|
+
};
|
|
7309
|
+
var getSizeUnits = (propType, variant) => {
|
|
7310
|
+
return getSettingsUnits(propType) ?? getVariantUnits(variant);
|
|
7311
|
+
};
|
|
7312
|
+
|
|
7313
|
+
// src/controls/size-control/utils/should-nullify-value.ts
|
|
7314
|
+
var conditions = [
|
|
7315
|
+
(value) => value?.size === null || value?.size === void 0 || value?.size === "",
|
|
7316
|
+
(value) => value?.unit !== EXTENDED_UNITS.auto,
|
|
7317
|
+
(value) => value?.unit !== EXTENDED_UNITS.custom
|
|
7318
|
+
];
|
|
7319
|
+
var shouldNullifyValue = (value) => {
|
|
7320
|
+
return conditions.every((condition) => condition(value));
|
|
7321
|
+
};
|
|
7322
|
+
|
|
7323
|
+
// src/controls/size-control/unstable-size-control.tsx
|
|
7324
|
+
var UnstableSizeControl = createControl(
|
|
7325
|
+
({ variant = "length", placeholder: propPlaceholder, anchorRef, startIcon, ariaLabel, min }) => {
|
|
7326
|
+
const {
|
|
7327
|
+
value,
|
|
7328
|
+
setValue,
|
|
7329
|
+
propType,
|
|
7330
|
+
placeholder: boundPropPlaceholder,
|
|
7331
|
+
restoreValue
|
|
7332
|
+
} = useBoundProp(sizePropTypeUtil6);
|
|
7333
|
+
const { sizeValue, isUnitHighlighted, placeholder } = resolveBoundPropValue(
|
|
7334
|
+
value,
|
|
7335
|
+
boundPropPlaceholder,
|
|
7336
|
+
propPlaceholder
|
|
7337
|
+
);
|
|
7338
|
+
const units2 = getSizeUnits(propType, variant);
|
|
7339
|
+
const defaultUnit = getDefaultUnit(propType);
|
|
7340
|
+
const handleBlur = () => {
|
|
7341
|
+
const isRequired = propType.settings.required;
|
|
7342
|
+
if (shouldNullifyValue(value) && !isRequired) {
|
|
7343
|
+
setValue(null);
|
|
7344
|
+
}
|
|
7345
|
+
if (isRequired) {
|
|
7346
|
+
restoreValue();
|
|
7347
|
+
}
|
|
7348
|
+
};
|
|
7349
|
+
const handleChange = (newValue, options, meta) => {
|
|
7350
|
+
setValue(newValue, options, {
|
|
7351
|
+
...meta,
|
|
7352
|
+
validation: () => {
|
|
7353
|
+
if (propType.settings.required) {
|
|
7354
|
+
return newValue.size !== "";
|
|
7355
|
+
}
|
|
7356
|
+
return meta?.validation ? meta.validation(newValue) : true;
|
|
7357
|
+
}
|
|
7358
|
+
});
|
|
7359
|
+
};
|
|
7360
|
+
return /* @__PURE__ */ React108.createElement(
|
|
7361
|
+
SizeComponent,
|
|
7362
|
+
{
|
|
7363
|
+
units: units2,
|
|
7364
|
+
value: sizeValue,
|
|
7365
|
+
anchorRef,
|
|
7366
|
+
placeholder,
|
|
7367
|
+
defaultUnit,
|
|
7368
|
+
isUnitActive: isUnitHighlighted,
|
|
7369
|
+
onBlur: handleBlur,
|
|
7370
|
+
setValue: handleChange,
|
|
7371
|
+
SizeFieldWrapper: ControlActions,
|
|
7372
|
+
startIcon,
|
|
7373
|
+
ariaLabel,
|
|
7374
|
+
min
|
|
7375
|
+
}
|
|
7376
|
+
);
|
|
7377
|
+
}
|
|
7378
|
+
);
|
|
7379
|
+
|
|
7380
|
+
// src/components/promotions/display-conditions-control.tsx
|
|
7381
|
+
import * as React110 from "react";
|
|
7382
|
+
import { useRef as useRef26 } from "react";
|
|
6752
7383
|
import { SitemapIcon } from "@elementor/icons";
|
|
6753
7384
|
import { IconButton as IconButton8, Stack as Stack18, Tooltip as Tooltip9 } from "@elementor/ui";
|
|
6754
|
-
import { __ as
|
|
7385
|
+
import { __ as __53 } from "@wordpress/i18n";
|
|
6755
7386
|
|
|
6756
7387
|
// src/components/promotions/promotion-trigger.tsx
|
|
6757
|
-
import * as
|
|
6758
|
-
import { forwardRef as
|
|
7388
|
+
import * as React109 from "react";
|
|
7389
|
+
import { forwardRef as forwardRef12, useCallback as useCallback4, useImperativeHandle, useState as useState17 } from "react";
|
|
6759
7390
|
import { PromotionChip as PromotionChip2, PromotionInfotip } from "@elementor/editor-ui";
|
|
6760
|
-
import { Box as
|
|
7391
|
+
import { Box as Box26 } from "@elementor/ui";
|
|
6761
7392
|
function getV4Promotion(key) {
|
|
6762
7393
|
return window.elementor?.config?.v4Promotions?.[key];
|
|
6763
7394
|
}
|
|
6764
|
-
var PromotionTrigger =
|
|
7395
|
+
var PromotionTrigger = forwardRef12(
|
|
6765
7396
|
({ promotionKey, children, trackingData }, ref) => {
|
|
6766
7397
|
const [isOpen, setIsOpen] = useState17(false);
|
|
6767
7398
|
const promotion = getV4Promotion(promotionKey);
|
|
@@ -6774,7 +7405,7 @@ var PromotionTrigger = forwardRef11(
|
|
|
6774
7405
|
});
|
|
6775
7406
|
}, [trackingData]);
|
|
6776
7407
|
useImperativeHandle(ref, () => ({ toggle }), [toggle]);
|
|
6777
|
-
return /* @__PURE__ */
|
|
7408
|
+
return /* @__PURE__ */ React109.createElement(React109.Fragment, null, promotion && /* @__PURE__ */ React109.createElement(
|
|
6778
7409
|
PromotionInfotip,
|
|
6779
7410
|
{
|
|
6780
7411
|
title: promotion.title,
|
|
@@ -6788,8 +7419,8 @@ var PromotionTrigger = forwardRef11(
|
|
|
6788
7419
|
},
|
|
6789
7420
|
onCtaClick: () => trackUpgradePromotionClick(trackingData)
|
|
6790
7421
|
},
|
|
6791
|
-
/* @__PURE__ */
|
|
6792
|
-
|
|
7422
|
+
/* @__PURE__ */ React109.createElement(
|
|
7423
|
+
Box26,
|
|
6793
7424
|
{
|
|
6794
7425
|
onClick: (e) => {
|
|
6795
7426
|
e.stopPropagation();
|
|
@@ -6797,18 +7428,18 @@ var PromotionTrigger = forwardRef11(
|
|
|
6797
7428
|
},
|
|
6798
7429
|
sx: { cursor: "pointer", display: "inline-flex" }
|
|
6799
7430
|
},
|
|
6800
|
-
children ?? /* @__PURE__ */
|
|
7431
|
+
children ?? /* @__PURE__ */ React109.createElement(PromotionChip2, null)
|
|
6801
7432
|
)
|
|
6802
7433
|
));
|
|
6803
7434
|
}
|
|
6804
7435
|
);
|
|
6805
7436
|
|
|
6806
7437
|
// src/components/promotions/display-conditions-control.tsx
|
|
6807
|
-
var ARIA_LABEL =
|
|
7438
|
+
var ARIA_LABEL = __53("Display Conditions", "elementor");
|
|
6808
7439
|
var TRACKING_DATA = { target_name: "display_conditions", location_l2: "general" };
|
|
6809
7440
|
var DisplayConditionsControl = createControl(() => {
|
|
6810
|
-
const triggerRef =
|
|
6811
|
-
return /* @__PURE__ */
|
|
7441
|
+
const triggerRef = useRef26(null);
|
|
7442
|
+
return /* @__PURE__ */ React110.createElement(
|
|
6812
7443
|
Stack18,
|
|
6813
7444
|
{
|
|
6814
7445
|
direction: "row",
|
|
@@ -6818,8 +7449,8 @@ var DisplayConditionsControl = createControl(() => {
|
|
|
6818
7449
|
alignItems: "center"
|
|
6819
7450
|
}
|
|
6820
7451
|
},
|
|
6821
|
-
/* @__PURE__ */
|
|
6822
|
-
/* @__PURE__ */
|
|
7452
|
+
/* @__PURE__ */ React110.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
|
|
7453
|
+
/* @__PURE__ */ React110.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React110.createElement(
|
|
6823
7454
|
IconButton8,
|
|
6824
7455
|
{
|
|
6825
7456
|
size: "tiny",
|
|
@@ -6832,22 +7463,22 @@ var DisplayConditionsControl = createControl(() => {
|
|
|
6832
7463
|
borderRadius: 1
|
|
6833
7464
|
}
|
|
6834
7465
|
},
|
|
6835
|
-
/* @__PURE__ */
|
|
7466
|
+
/* @__PURE__ */ React110.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
|
|
6836
7467
|
))
|
|
6837
7468
|
);
|
|
6838
7469
|
});
|
|
6839
7470
|
|
|
6840
7471
|
// src/components/promotions/attributes-control.tsx
|
|
6841
|
-
import * as
|
|
6842
|
-
import { useRef as
|
|
7472
|
+
import * as React111 from "react";
|
|
7473
|
+
import { useRef as useRef27 } from "react";
|
|
6843
7474
|
import { PlusIcon as PlusIcon3 } from "@elementor/icons";
|
|
6844
7475
|
import { Stack as Stack19, Tooltip as Tooltip10 } from "@elementor/ui";
|
|
6845
|
-
import { __ as
|
|
6846
|
-
var ARIA_LABEL2 =
|
|
7476
|
+
import { __ as __54 } from "@wordpress/i18n";
|
|
7477
|
+
var ARIA_LABEL2 = __54("Attributes", "elementor");
|
|
6847
7478
|
var TRACKING_DATA2 = { target_name: "attributes", location_l2: "general" };
|
|
6848
7479
|
var AttributesControl = createControl(() => {
|
|
6849
|
-
const triggerRef =
|
|
6850
|
-
return /* @__PURE__ */
|
|
7480
|
+
const triggerRef = useRef27(null);
|
|
7481
|
+
return /* @__PURE__ */ React111.createElement(
|
|
6851
7482
|
Stack19,
|
|
6852
7483
|
{
|
|
6853
7484
|
direction: "row",
|
|
@@ -6857,8 +7488,8 @@ var AttributesControl = createControl(() => {
|
|
|
6857
7488
|
alignItems: "center"
|
|
6858
7489
|
}
|
|
6859
7490
|
},
|
|
6860
|
-
/* @__PURE__ */
|
|
6861
|
-
/* @__PURE__ */
|
|
7491
|
+
/* @__PURE__ */ React111.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
|
|
7492
|
+
/* @__PURE__ */ React111.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React111.createElement(
|
|
6862
7493
|
PlusIcon3,
|
|
6863
7494
|
{
|
|
6864
7495
|
"aria-label": ARIA_LABEL2,
|
|
@@ -6872,30 +7503,30 @@ var AttributesControl = createControl(() => {
|
|
|
6872
7503
|
});
|
|
6873
7504
|
|
|
6874
7505
|
// src/components/icon-buttons/clear-icon-button.tsx
|
|
6875
|
-
import * as
|
|
7506
|
+
import * as React112 from "react";
|
|
6876
7507
|
import { BrushBigIcon } from "@elementor/icons";
|
|
6877
|
-
import { IconButton as IconButton9, styled as
|
|
6878
|
-
var CustomIconButton =
|
|
7508
|
+
import { IconButton as IconButton9, styled as styled10, Tooltip as Tooltip11 } from "@elementor/ui";
|
|
7509
|
+
var CustomIconButton = styled10(IconButton9)(({ theme }) => ({
|
|
6879
7510
|
width: theme.spacing(2.5),
|
|
6880
7511
|
height: theme.spacing(2.5)
|
|
6881
7512
|
}));
|
|
6882
|
-
var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */
|
|
7513
|
+
var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React112.createElement(Tooltip11, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React112.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React112.createElement(BrushBigIcon, { fontSize: size })));
|
|
6883
7514
|
|
|
6884
7515
|
// src/components/repeater/repeater.tsx
|
|
6885
|
-
import * as
|
|
6886
|
-
import { useEffect as
|
|
7516
|
+
import * as React113 from "react";
|
|
7517
|
+
import { useEffect as useEffect16, useState as useState18 } from "react";
|
|
6887
7518
|
import { CopyIcon as CopyIcon2, EyeIcon as EyeIcon2, EyeOffIcon as EyeOffIcon2, PlusIcon as PlusIcon4, XIcon as XIcon4 } from "@elementor/icons";
|
|
6888
7519
|
import {
|
|
6889
|
-
bindPopover as
|
|
6890
|
-
bindTrigger as
|
|
6891
|
-
Box as
|
|
7520
|
+
bindPopover as bindPopover8,
|
|
7521
|
+
bindTrigger as bindTrigger7,
|
|
7522
|
+
Box as Box27,
|
|
6892
7523
|
IconButton as IconButton10,
|
|
6893
7524
|
Infotip as Infotip4,
|
|
6894
7525
|
Tooltip as Tooltip12,
|
|
6895
|
-
usePopupState as
|
|
7526
|
+
usePopupState as usePopupState10
|
|
6896
7527
|
} from "@elementor/ui";
|
|
6897
|
-
import { __ as
|
|
6898
|
-
var
|
|
7528
|
+
import { __ as __55 } from "@wordpress/i18n";
|
|
7529
|
+
var SIZE11 = "tiny";
|
|
6899
7530
|
var EMPTY_OPEN_ITEM2 = -1;
|
|
6900
7531
|
var Repeater3 = ({
|
|
6901
7532
|
label,
|
|
@@ -6975,20 +7606,20 @@ var Repeater3 = ({
|
|
|
6975
7606
|
};
|
|
6976
7607
|
const isButtonDisabled = disabled || disableAddItemButton;
|
|
6977
7608
|
const shouldShowInfotip = isButtonDisabled && addButtonInfotipContent;
|
|
6978
|
-
const addButton = /* @__PURE__ */
|
|
7609
|
+
const addButton = /* @__PURE__ */ React113.createElement(
|
|
6979
7610
|
IconButton10,
|
|
6980
7611
|
{
|
|
6981
|
-
size:
|
|
7612
|
+
size: SIZE11,
|
|
6982
7613
|
sx: {
|
|
6983
7614
|
ml: "auto"
|
|
6984
7615
|
},
|
|
6985
7616
|
disabled: isButtonDisabled,
|
|
6986
7617
|
onClick: addRepeaterItem,
|
|
6987
|
-
"aria-label":
|
|
7618
|
+
"aria-label": __55("Add item", "elementor")
|
|
6988
7619
|
},
|
|
6989
|
-
/* @__PURE__ */
|
|
7620
|
+
/* @__PURE__ */ React113.createElement(PlusIcon4, { fontSize: SIZE11 })
|
|
6990
7621
|
);
|
|
6991
|
-
return /* @__PURE__ */
|
|
7622
|
+
return /* @__PURE__ */ React113.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React113.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React113.createElement(
|
|
6992
7623
|
Infotip4,
|
|
6993
7624
|
{
|
|
6994
7625
|
placement: "right",
|
|
@@ -6996,20 +7627,20 @@ var Repeater3 = ({
|
|
|
6996
7627
|
color: "secondary",
|
|
6997
7628
|
slotProps: { popper: { sx: { width: 300 } } }
|
|
6998
7629
|
},
|
|
6999
|
-
/* @__PURE__ */
|
|
7000
|
-
) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */
|
|
7630
|
+
/* @__PURE__ */ React113.createElement(Box27, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
|
|
7631
|
+
) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React113.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
|
|
7001
7632
|
const index = uniqueKeys.indexOf(key);
|
|
7002
7633
|
const value = items2[index];
|
|
7003
7634
|
if (!value) {
|
|
7004
7635
|
return null;
|
|
7005
7636
|
}
|
|
7006
|
-
return /* @__PURE__ */
|
|
7637
|
+
return /* @__PURE__ */ React113.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React113.createElement(
|
|
7007
7638
|
RepeaterItem,
|
|
7008
7639
|
{
|
|
7009
7640
|
disabled,
|
|
7010
7641
|
propDisabled: value?.disabled,
|
|
7011
|
-
label: /* @__PURE__ */
|
|
7012
|
-
startIcon: /* @__PURE__ */
|
|
7642
|
+
label: /* @__PURE__ */ React113.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React113.createElement(itemSettings.Label, { value, index })),
|
|
7643
|
+
startIcon: /* @__PURE__ */ React113.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React113.createElement(itemSettings.Icon, { value })),
|
|
7013
7644
|
removeItem: () => removeRepeaterItem(index),
|
|
7014
7645
|
duplicateItem: () => duplicateRepeaterItem(index),
|
|
7015
7646
|
toggleDisableItem: () => toggleDisableRepeaterItem(index),
|
|
@@ -7021,7 +7652,7 @@ var Repeater3 = ({
|
|
|
7021
7652
|
actions: itemSettings.actions,
|
|
7022
7653
|
value
|
|
7023
7654
|
},
|
|
7024
|
-
(props) => /* @__PURE__ */
|
|
7655
|
+
(props) => /* @__PURE__ */ React113.createElement(
|
|
7025
7656
|
itemSettings.Content,
|
|
7026
7657
|
{
|
|
7027
7658
|
...props,
|
|
@@ -7051,27 +7682,27 @@ var RepeaterItem = ({
|
|
|
7051
7682
|
value
|
|
7052
7683
|
}) => {
|
|
7053
7684
|
const { popoverState, popoverProps, ref, setRef } = usePopover(openOnMount, onOpen);
|
|
7054
|
-
const duplicateLabel =
|
|
7055
|
-
const toggleLabel = propDisabled ?
|
|
7056
|
-
const removeLabel =
|
|
7057
|
-
return /* @__PURE__ */
|
|
7685
|
+
const duplicateLabel = __55("Duplicate", "elementor");
|
|
7686
|
+
const toggleLabel = propDisabled ? __55("Show", "elementor") : __55("Hide", "elementor");
|
|
7687
|
+
const removeLabel = __55("Remove", "elementor");
|
|
7688
|
+
return /* @__PURE__ */ React113.createElement(React113.Fragment, null, /* @__PURE__ */ React113.createElement(
|
|
7058
7689
|
RepeaterTag,
|
|
7059
7690
|
{
|
|
7060
7691
|
disabled,
|
|
7061
7692
|
label,
|
|
7062
7693
|
ref: setRef,
|
|
7063
|
-
"aria-label":
|
|
7064
|
-
...
|
|
7694
|
+
"aria-label": __55("Open item", "elementor"),
|
|
7695
|
+
...bindTrigger7(popoverState),
|
|
7065
7696
|
startIcon,
|
|
7066
|
-
actions: /* @__PURE__ */
|
|
7697
|
+
actions: /* @__PURE__ */ React113.createElement(React113.Fragment, null, showDuplicate && /* @__PURE__ */ React113.createElement(Tooltip12, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React113.createElement(IconButton10, { size: SIZE11, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React113.createElement(CopyIcon2, { fontSize: SIZE11 }))), showToggle && /* @__PURE__ */ React113.createElement(Tooltip12, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React113.createElement(IconButton10, { size: SIZE11, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React113.createElement(EyeOffIcon2, { fontSize: SIZE11 }) : /* @__PURE__ */ React113.createElement(EyeIcon2, { fontSize: SIZE11 }))), actions?.(value), showRemove && /* @__PURE__ */ React113.createElement(Tooltip12, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React113.createElement(IconButton10, { size: SIZE11, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React113.createElement(XIcon4, { fontSize: SIZE11 }))))
|
|
7067
7698
|
}
|
|
7068
|
-
), /* @__PURE__ */
|
|
7699
|
+
), /* @__PURE__ */ React113.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React113.createElement(Box27, null, children({ anchorEl: ref }))));
|
|
7069
7700
|
};
|
|
7070
7701
|
var usePopover = (openOnMount, onOpen) => {
|
|
7071
7702
|
const [ref, setRef] = useState18(null);
|
|
7072
|
-
const popoverState =
|
|
7073
|
-
const popoverProps =
|
|
7074
|
-
|
|
7703
|
+
const popoverState = usePopupState10({ variant: "popover" });
|
|
7704
|
+
const popoverProps = bindPopover8(popoverState);
|
|
7705
|
+
useEffect16(() => {
|
|
7075
7706
|
if (openOnMount && ref) {
|
|
7076
7707
|
popoverState.open(ref);
|
|
7077
7708
|
onOpen?.();
|
|
@@ -7086,8 +7717,8 @@ var usePopover = (openOnMount, onOpen) => {
|
|
|
7086
7717
|
};
|
|
7087
7718
|
|
|
7088
7719
|
// src/components/inline-editor-toolbar.tsx
|
|
7089
|
-
import * as
|
|
7090
|
-
import { useMemo as
|
|
7720
|
+
import * as React115 from "react";
|
|
7721
|
+
import { useMemo as useMemo16, useRef as useRef29, useState as useState19 } from "react";
|
|
7091
7722
|
import { getContainer, getElementSetting } from "@elementor/editor-elements";
|
|
7092
7723
|
import {
|
|
7093
7724
|
BoldIcon,
|
|
@@ -7100,23 +7731,23 @@ import {
|
|
|
7100
7731
|
UnderlineIcon
|
|
7101
7732
|
} from "@elementor/icons";
|
|
7102
7733
|
import {
|
|
7103
|
-
Box as
|
|
7734
|
+
Box as Box28,
|
|
7104
7735
|
IconButton as IconButton11,
|
|
7105
7736
|
ToggleButton as ToggleButton3,
|
|
7106
7737
|
ToggleButtonGroup as ToggleButtonGroup2,
|
|
7107
7738
|
toggleButtonGroupClasses,
|
|
7108
7739
|
Tooltip as Tooltip14,
|
|
7109
|
-
usePopupState as
|
|
7740
|
+
usePopupState as usePopupState11
|
|
7110
7741
|
} from "@elementor/ui";
|
|
7111
7742
|
import { useEditorState } from "@tiptap/react";
|
|
7112
|
-
import { __ as
|
|
7743
|
+
import { __ as __57 } from "@wordpress/i18n";
|
|
7113
7744
|
|
|
7114
7745
|
// src/components/url-popover.tsx
|
|
7115
|
-
import * as
|
|
7116
|
-
import { useEffect as
|
|
7746
|
+
import * as React114 from "react";
|
|
7747
|
+
import { useEffect as useEffect17, useRef as useRef28 } from "react";
|
|
7117
7748
|
import { ExternalLinkIcon } from "@elementor/icons";
|
|
7118
|
-
import { bindPopover as
|
|
7119
|
-
import { __ as
|
|
7749
|
+
import { bindPopover as bindPopover9, Popover as Popover8, Stack as Stack20, TextField as TextField10, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
|
|
7750
|
+
import { __ as __56 } from "@wordpress/i18n";
|
|
7120
7751
|
var UrlPopover = ({
|
|
7121
7752
|
popupState,
|
|
7122
7753
|
restoreValue,
|
|
@@ -7126,8 +7757,8 @@ var UrlPopover = ({
|
|
|
7126
7757
|
openInNewTab,
|
|
7127
7758
|
onToggleNewTab
|
|
7128
7759
|
}) => {
|
|
7129
|
-
const inputRef =
|
|
7130
|
-
|
|
7760
|
+
const inputRef = useRef28(null);
|
|
7761
|
+
useEffect17(() => {
|
|
7131
7762
|
if (popupState.isOpen) {
|
|
7132
7763
|
requestAnimationFrame(() => inputRef.current?.focus());
|
|
7133
7764
|
}
|
|
@@ -7136,41 +7767,41 @@ var UrlPopover = ({
|
|
|
7136
7767
|
restoreValue();
|
|
7137
7768
|
popupState.close();
|
|
7138
7769
|
};
|
|
7139
|
-
return /* @__PURE__ */
|
|
7140
|
-
|
|
7770
|
+
return /* @__PURE__ */ React114.createElement(
|
|
7771
|
+
Popover8,
|
|
7141
7772
|
{
|
|
7142
7773
|
slotProps: {
|
|
7143
7774
|
paper: { sx: { borderRadius: "16px", width: anchorRef.current?.offsetWidth + "px", marginTop: -1 } }
|
|
7144
7775
|
},
|
|
7145
|
-
...
|
|
7776
|
+
...bindPopover9(popupState),
|
|
7146
7777
|
anchorOrigin: { vertical: "top", horizontal: "left" },
|
|
7147
7778
|
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
7148
7779
|
onClose: handleClose
|
|
7149
7780
|
},
|
|
7150
|
-
/* @__PURE__ */
|
|
7151
|
-
|
|
7781
|
+
/* @__PURE__ */ React114.createElement(Stack20, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React114.createElement(
|
|
7782
|
+
TextField10,
|
|
7152
7783
|
{
|
|
7153
7784
|
value,
|
|
7154
7785
|
onChange,
|
|
7155
7786
|
size: "tiny",
|
|
7156
7787
|
fullWidth: true,
|
|
7157
|
-
placeholder:
|
|
7788
|
+
placeholder: __56("Type a URL", "elementor"),
|
|
7158
7789
|
inputProps: { ref: inputRef },
|
|
7159
7790
|
color: "secondary",
|
|
7160
7791
|
InputProps: { sx: { borderRadius: "8px" } },
|
|
7161
7792
|
onKeyUp: (event) => event.key === "Enter" && handleClose()
|
|
7162
7793
|
}
|
|
7163
|
-
), /* @__PURE__ */
|
|
7794
|
+
), /* @__PURE__ */ React114.createElement(Tooltip13, { title: __56("Open in a new tab", "elementor") }, /* @__PURE__ */ React114.createElement(
|
|
7164
7795
|
ToggleButton2,
|
|
7165
7796
|
{
|
|
7166
7797
|
size: "tiny",
|
|
7167
7798
|
value: "newTab",
|
|
7168
7799
|
selected: openInNewTab,
|
|
7169
7800
|
onClick: onToggleNewTab,
|
|
7170
|
-
"aria-label":
|
|
7801
|
+
"aria-label": __56("Open in a new tab", "elementor"),
|
|
7171
7802
|
sx: { borderRadius: "8px" }
|
|
7172
7803
|
},
|
|
7173
|
-
/* @__PURE__ */
|
|
7804
|
+
/* @__PURE__ */ React114.createElement(ExternalLinkIcon, { fontSize: "tiny" })
|
|
7174
7805
|
)))
|
|
7175
7806
|
);
|
|
7176
7807
|
};
|
|
@@ -7179,14 +7810,14 @@ var UrlPopover = ({
|
|
|
7179
7810
|
var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
7180
7811
|
const [urlValue, setUrlValue] = useState19("");
|
|
7181
7812
|
const [openInNewTab, setOpenInNewTab] = useState19(false);
|
|
7182
|
-
const toolbarRef =
|
|
7183
|
-
const linkPopupState =
|
|
7813
|
+
const toolbarRef = useRef29(null);
|
|
7814
|
+
const linkPopupState = usePopupState11({ variant: "popover" });
|
|
7184
7815
|
const isElementClickable = elementId ? checkIfElementIsClickable(elementId) : false;
|
|
7185
7816
|
const editorState = useEditorState({
|
|
7186
7817
|
editor,
|
|
7187
7818
|
selector: (ctx) => possibleFormats.filter((format) => ctx.editor.isActive(format))
|
|
7188
7819
|
});
|
|
7189
|
-
const formatButtonsList =
|
|
7820
|
+
const formatButtonsList = useMemo16(() => {
|
|
7190
7821
|
const buttons = Object.values(formatButtons);
|
|
7191
7822
|
if (isElementClickable) {
|
|
7192
7823
|
return buttons.filter((button) => button.action !== "link");
|
|
@@ -7223,11 +7854,11 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7223
7854
|
}
|
|
7224
7855
|
linkPopupState.close();
|
|
7225
7856
|
};
|
|
7226
|
-
|
|
7857
|
+
React115.useEffect(() => {
|
|
7227
7858
|
editor?.commands?.focus();
|
|
7228
7859
|
}, [editor]);
|
|
7229
|
-
return /* @__PURE__ */
|
|
7230
|
-
|
|
7860
|
+
return /* @__PURE__ */ React115.createElement(
|
|
7861
|
+
Box28,
|
|
7231
7862
|
{
|
|
7232
7863
|
ref: toolbarRef,
|
|
7233
7864
|
sx: {
|
|
@@ -7243,8 +7874,8 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7243
7874
|
...sx
|
|
7244
7875
|
}
|
|
7245
7876
|
},
|
|
7246
|
-
/* @__PURE__ */
|
|
7247
|
-
/* @__PURE__ */
|
|
7877
|
+
/* @__PURE__ */ React115.createElement(Tooltip14, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React115.createElement(IconButton11, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
|
|
7878
|
+
/* @__PURE__ */ React115.createElement(
|
|
7248
7879
|
ToggleButtonGroup2,
|
|
7249
7880
|
{
|
|
7250
7881
|
value: editorState,
|
|
@@ -7266,7 +7897,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7266
7897
|
}
|
|
7267
7898
|
}
|
|
7268
7899
|
},
|
|
7269
|
-
formatButtonsList.map((button) => /* @__PURE__ */
|
|
7900
|
+
formatButtonsList.map((button) => /* @__PURE__ */ React115.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React115.createElement(
|
|
7270
7901
|
ToggleButton3,
|
|
7271
7902
|
{
|
|
7272
7903
|
value: button.action,
|
|
@@ -7284,7 +7915,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7284
7915
|
button.icon
|
|
7285
7916
|
)))
|
|
7286
7917
|
),
|
|
7287
|
-
/* @__PURE__ */
|
|
7918
|
+
/* @__PURE__ */ React115.createElement(
|
|
7288
7919
|
UrlPopover,
|
|
7289
7920
|
{
|
|
7290
7921
|
popupState: linkPopupState,
|
|
@@ -7307,64 +7938,64 @@ var checkIfElementIsClickable = (elementId) => {
|
|
|
7307
7938
|
};
|
|
7308
7939
|
var toolbarButtons = {
|
|
7309
7940
|
clear: {
|
|
7310
|
-
label:
|
|
7311
|
-
icon: /* @__PURE__ */
|
|
7941
|
+
label: __57("Clear", "elementor"),
|
|
7942
|
+
icon: /* @__PURE__ */ React115.createElement(MinusIcon2, { fontSize: "tiny" }),
|
|
7312
7943
|
action: "clear",
|
|
7313
7944
|
method: (editor) => {
|
|
7314
7945
|
editor.chain().focus().clearNodes().unsetAllMarks().run();
|
|
7315
7946
|
}
|
|
7316
7947
|
},
|
|
7317
7948
|
bold: {
|
|
7318
|
-
label:
|
|
7319
|
-
icon: /* @__PURE__ */
|
|
7949
|
+
label: __57("Bold", "elementor"),
|
|
7950
|
+
icon: /* @__PURE__ */ React115.createElement(BoldIcon, { fontSize: "tiny" }),
|
|
7320
7951
|
action: "bold",
|
|
7321
7952
|
method: (editor) => {
|
|
7322
7953
|
editor.chain().focus().toggleBold().run();
|
|
7323
7954
|
}
|
|
7324
7955
|
},
|
|
7325
7956
|
italic: {
|
|
7326
|
-
label:
|
|
7327
|
-
icon: /* @__PURE__ */
|
|
7957
|
+
label: __57("Italic", "elementor"),
|
|
7958
|
+
icon: /* @__PURE__ */ React115.createElement(ItalicIcon, { fontSize: "tiny" }),
|
|
7328
7959
|
action: "italic",
|
|
7329
7960
|
method: (editor) => {
|
|
7330
7961
|
editor.chain().focus().toggleItalic().run();
|
|
7331
7962
|
}
|
|
7332
7963
|
},
|
|
7333
7964
|
underline: {
|
|
7334
|
-
label:
|
|
7335
|
-
icon: /* @__PURE__ */
|
|
7965
|
+
label: __57("Underline", "elementor"),
|
|
7966
|
+
icon: /* @__PURE__ */ React115.createElement(UnderlineIcon, { fontSize: "tiny" }),
|
|
7336
7967
|
action: "underline",
|
|
7337
7968
|
method: (editor) => {
|
|
7338
7969
|
editor.chain().focus().toggleUnderline().run();
|
|
7339
7970
|
}
|
|
7340
7971
|
},
|
|
7341
7972
|
strike: {
|
|
7342
|
-
label:
|
|
7343
|
-
icon: /* @__PURE__ */
|
|
7973
|
+
label: __57("Strikethrough", "elementor"),
|
|
7974
|
+
icon: /* @__PURE__ */ React115.createElement(StrikethroughIcon, { fontSize: "tiny" }),
|
|
7344
7975
|
action: "strike",
|
|
7345
7976
|
method: (editor) => {
|
|
7346
7977
|
editor.chain().focus().toggleStrike().run();
|
|
7347
7978
|
}
|
|
7348
7979
|
},
|
|
7349
7980
|
superscript: {
|
|
7350
|
-
label:
|
|
7351
|
-
icon: /* @__PURE__ */
|
|
7981
|
+
label: __57("Superscript", "elementor"),
|
|
7982
|
+
icon: /* @__PURE__ */ React115.createElement(SuperscriptIcon, { fontSize: "tiny" }),
|
|
7352
7983
|
action: "superscript",
|
|
7353
7984
|
method: (editor) => {
|
|
7354
7985
|
editor.chain().focus().toggleSuperscript().run();
|
|
7355
7986
|
}
|
|
7356
7987
|
},
|
|
7357
7988
|
subscript: {
|
|
7358
|
-
label:
|
|
7359
|
-
icon: /* @__PURE__ */
|
|
7989
|
+
label: __57("Subscript", "elementor"),
|
|
7990
|
+
icon: /* @__PURE__ */ React115.createElement(SubscriptIcon, { fontSize: "tiny" }),
|
|
7360
7991
|
action: "subscript",
|
|
7361
7992
|
method: (editor) => {
|
|
7362
7993
|
editor.chain().focus().toggleSubscript().run();
|
|
7363
7994
|
}
|
|
7364
7995
|
},
|
|
7365
7996
|
link: {
|
|
7366
|
-
label:
|
|
7367
|
-
icon: /* @__PURE__ */
|
|
7997
|
+
label: __57("Link", "elementor"),
|
|
7998
|
+
icon: /* @__PURE__ */ React115.createElement(LinkIcon3, { fontSize: "tiny" }),
|
|
7368
7999
|
action: "link",
|
|
7369
8000
|
method: null
|
|
7370
8001
|
}
|
|
@@ -7373,13 +8004,13 @@ var { clear: clearButton, ...formatButtons } = toolbarButtons;
|
|
|
7373
8004
|
var possibleFormats = Object.keys(formatButtons);
|
|
7374
8005
|
|
|
7375
8006
|
// src/components/size/unstable-size-field.tsx
|
|
7376
|
-
import * as
|
|
7377
|
-
import { InputAdornment as
|
|
8007
|
+
import * as React118 from "react";
|
|
8008
|
+
import { InputAdornment as InputAdornment6 } from "@elementor/ui";
|
|
7378
8009
|
|
|
7379
8010
|
// src/hooks/use-size-value.ts
|
|
7380
8011
|
var DEFAULT_UNIT2 = "px";
|
|
7381
|
-
var
|
|
7382
|
-
var
|
|
8012
|
+
var DEFAULT_SIZE3 = "";
|
|
8013
|
+
var useSizeValue2 = (externalValue, onChange, defaultUnit) => {
|
|
7383
8014
|
const [sizeValue, setSizeValue] = useSyncExternalState({
|
|
7384
8015
|
external: externalValue,
|
|
7385
8016
|
setExternal: (newState) => {
|
|
@@ -7388,7 +8019,7 @@ var useSizeValue = (externalValue, onChange, defaultUnit) => {
|
|
|
7388
8019
|
}
|
|
7389
8020
|
},
|
|
7390
8021
|
persistWhen: (newState) => differsFromExternal(newState, externalValue),
|
|
7391
|
-
fallback: () => ({ size:
|
|
8022
|
+
fallback: () => ({ size: DEFAULT_SIZE3, unit: defaultUnit ?? DEFAULT_UNIT2 })
|
|
7392
8023
|
});
|
|
7393
8024
|
const setSize = (value) => {
|
|
7394
8025
|
const newState = {
|
|
@@ -7416,44 +8047,44 @@ var differsFromExternal = (newState, externalState) => {
|
|
|
7416
8047
|
};
|
|
7417
8048
|
|
|
7418
8049
|
// src/components/size/unit-select.tsx
|
|
7419
|
-
import * as
|
|
7420
|
-
import { useId as
|
|
7421
|
-
import { MenuListItem as
|
|
7422
|
-
import { bindMenu as
|
|
7423
|
-
var
|
|
8050
|
+
import * as React116 from "react";
|
|
8051
|
+
import { useId as useId4 } from "react";
|
|
8052
|
+
import { MenuListItem as MenuListItem8 } from "@elementor/editor-ui";
|
|
8053
|
+
import { bindMenu as bindMenu3, bindTrigger as bindTrigger8, Button as Button7, Menu as Menu4, styled as styled11, usePopupState as usePopupState12 } from "@elementor/ui";
|
|
8054
|
+
var menuItemContentStyles2 = {
|
|
7424
8055
|
display: "flex",
|
|
7425
8056
|
flexDirection: "column",
|
|
7426
8057
|
justifyContent: "center"
|
|
7427
8058
|
};
|
|
7428
8059
|
var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
|
|
7429
|
-
const popupState =
|
|
8060
|
+
const popupState = usePopupState12({
|
|
7430
8061
|
variant: "popover",
|
|
7431
|
-
popupId:
|
|
8062
|
+
popupId: useId4()
|
|
7432
8063
|
});
|
|
7433
8064
|
const handleMenuItemClick = (index) => {
|
|
7434
8065
|
onClick(options[index]);
|
|
7435
8066
|
popupState.close();
|
|
7436
8067
|
};
|
|
7437
|
-
return /* @__PURE__ */
|
|
7438
|
-
|
|
8068
|
+
return /* @__PURE__ */ React116.createElement(React116.Fragment, null, /* @__PURE__ */ React116.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger8(popupState) }, value), /* @__PURE__ */ React116.createElement(Menu4, { MenuListProps: { dense: true }, ...bindMenu3(popupState) }, options.map((option, index) => /* @__PURE__ */ React116.createElement(
|
|
8069
|
+
MenuListItem8,
|
|
7439
8070
|
{
|
|
7440
8071
|
key: option,
|
|
7441
8072
|
onClick: () => handleMenuItemClick(index),
|
|
7442
8073
|
primaryTypographyProps: {
|
|
7443
8074
|
variant: "caption",
|
|
7444
8075
|
sx: {
|
|
7445
|
-
...
|
|
8076
|
+
...menuItemContentStyles2,
|
|
7446
8077
|
lineHeight: "1"
|
|
7447
8078
|
}
|
|
7448
8079
|
},
|
|
7449
8080
|
menuItemTextProps: {
|
|
7450
|
-
sx:
|
|
8081
|
+
sx: menuItemContentStyles2
|
|
7451
8082
|
}
|
|
7452
8083
|
},
|
|
7453
8084
|
option.toUpperCase()
|
|
7454
8085
|
))));
|
|
7455
8086
|
};
|
|
7456
|
-
var
|
|
8087
|
+
var StyledButton3 = styled11(Button7, {
|
|
7457
8088
|
shouldForwardProp: (prop) => prop !== "isPrimaryColor"
|
|
7458
8089
|
})(({ isPrimaryColor, theme }) => ({
|
|
7459
8090
|
color: isPrimaryColor ? theme.palette.text.primary : theme.palette.text.tertiary,
|
|
@@ -7463,11 +8094,11 @@ var StyledButton2 = styled10(Button6, {
|
|
|
7463
8094
|
}));
|
|
7464
8095
|
|
|
7465
8096
|
// src/components/size/unstable-size-input.tsx
|
|
7466
|
-
import * as
|
|
7467
|
-
import { forwardRef as
|
|
7468
|
-
var UnstableSizeInput =
|
|
8097
|
+
import * as React117 from "react";
|
|
8098
|
+
import { forwardRef as forwardRef13 } from "react";
|
|
8099
|
+
var UnstableSizeInput = forwardRef13(
|
|
7469
8100
|
({ type, value, onChange, onKeyDown, onKeyUp, InputProps, onBlur, focused, disabled }, ref) => {
|
|
7470
|
-
return /* @__PURE__ */
|
|
8101
|
+
return /* @__PURE__ */ React117.createElement(
|
|
7471
8102
|
NumberInput,
|
|
7472
8103
|
{
|
|
7473
8104
|
ref,
|
|
@@ -7482,12 +8113,12 @@ var UnstableSizeInput = forwardRef12(
|
|
|
7482
8113
|
onInput: onChange,
|
|
7483
8114
|
onBlur,
|
|
7484
8115
|
InputProps,
|
|
7485
|
-
sx:
|
|
8116
|
+
sx: getCursorStyle2(InputProps?.readOnly ?? false)
|
|
7486
8117
|
}
|
|
7487
8118
|
);
|
|
7488
8119
|
}
|
|
7489
8120
|
);
|
|
7490
|
-
var
|
|
8121
|
+
var getCursorStyle2 = (readOnly) => ({
|
|
7491
8122
|
input: { cursor: readOnly ? "default !important" : void 0 }
|
|
7492
8123
|
});
|
|
7493
8124
|
|
|
@@ -7501,11 +8132,11 @@ var UnstableSizeField = ({
|
|
|
7501
8132
|
defaultUnit,
|
|
7502
8133
|
startIcon
|
|
7503
8134
|
}) => {
|
|
7504
|
-
const { size, unit, setSize, setUnit } =
|
|
7505
|
-
const
|
|
8135
|
+
const { size, unit, setSize, setUnit } = useSizeValue2(value, onChange, defaultUnit);
|
|
8136
|
+
const shouldHighlightUnit2 = () => {
|
|
7506
8137
|
return hasValue(size);
|
|
7507
8138
|
};
|
|
7508
|
-
return /* @__PURE__ */
|
|
8139
|
+
return /* @__PURE__ */ React118.createElement(
|
|
7509
8140
|
UnstableSizeInput,
|
|
7510
8141
|
{
|
|
7511
8142
|
type: "number",
|
|
@@ -7514,14 +8145,14 @@ var UnstableSizeField = ({
|
|
|
7514
8145
|
onChange: (event) => setSize(event.target.value),
|
|
7515
8146
|
InputProps: {
|
|
7516
8147
|
...InputProps,
|
|
7517
|
-
startAdornment: startIcon && /* @__PURE__ */
|
|
7518
|
-
endAdornment: /* @__PURE__ */
|
|
8148
|
+
startAdornment: startIcon && /* @__PURE__ */ React118.createElement(InputAdornment6, { position: "start" }, startIcon),
|
|
8149
|
+
endAdornment: /* @__PURE__ */ React118.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React118.createElement(
|
|
7519
8150
|
UnitSelect,
|
|
7520
8151
|
{
|
|
7521
8152
|
options: units2,
|
|
7522
8153
|
value: unit,
|
|
7523
8154
|
onClick: setUnit,
|
|
7524
|
-
showPrimaryColor:
|
|
8155
|
+
showPrimaryColor: shouldHighlightUnit2()
|
|
7525
8156
|
}
|
|
7526
8157
|
))
|
|
7527
8158
|
}
|
|
@@ -7533,7 +8164,7 @@ var hasValue = (value) => {
|
|
|
7533
8164
|
};
|
|
7534
8165
|
|
|
7535
8166
|
// src/hooks/use-font-families.ts
|
|
7536
|
-
import { useMemo as
|
|
8167
|
+
import { useMemo as useMemo17 } from "react";
|
|
7537
8168
|
import { getElementorConfig } from "@elementor/editor-v1-adapters";
|
|
7538
8169
|
var getFontControlConfig = () => {
|
|
7539
8170
|
const { controls } = getElementorConfig();
|
|
@@ -7541,7 +8172,7 @@ var getFontControlConfig = () => {
|
|
|
7541
8172
|
};
|
|
7542
8173
|
var useFontFamilies = () => {
|
|
7543
8174
|
const { groups, options } = getFontControlConfig();
|
|
7544
|
-
return
|
|
8175
|
+
return useMemo17(() => {
|
|
7545
8176
|
if (!groups || !options) {
|
|
7546
8177
|
return [];
|
|
7547
8178
|
}
|
|
@@ -7606,6 +8237,7 @@ export {
|
|
|
7606
8237
|
Repeater3 as Repeater,
|
|
7607
8238
|
SelectControl,
|
|
7608
8239
|
SelectControlWrapper,
|
|
8240
|
+
SizeComponent,
|
|
7609
8241
|
SizeControl,
|
|
7610
8242
|
StrokeControl,
|
|
7611
8243
|
SvgMediaControl,
|
|
@@ -7617,6 +8249,7 @@ export {
|
|
|
7617
8249
|
TransformRepeaterControl,
|
|
7618
8250
|
TransformSettingsControl,
|
|
7619
8251
|
TransitionRepeaterControl,
|
|
8252
|
+
UnstableSizeControl,
|
|
7620
8253
|
UnstableSizeField,
|
|
7621
8254
|
UrlControl,
|
|
7622
8255
|
VideoMediaControl,
|