@elementor/editor-controls 4.1.0-710 → 4.1.0-712
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 +791 -162
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +767 -140
- package/dist/index.mjs.map +1 -1
- package/package.json +15 -15
- package/src/controls/email-form-action-control.tsx +2 -2
- 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/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,
|
|
@@ -6737,7 +6737,7 @@ var FromNameField = () => /* @__PURE__ */ React102.createElement(
|
|
|
6737
6737
|
var ReplyToField = () => /* @__PURE__ */ React102.createElement(EmailField, { bind: "reply-to", label: __51("Reply-to", "elementor") });
|
|
6738
6738
|
var CcField = () => /* @__PURE__ */ React102.createElement(EmailField, { bind: "cc", label: __51("Cc", "elementor") });
|
|
6739
6739
|
var BccField = () => /* @__PURE__ */ React102.createElement(EmailField, { bind: "bcc", label: __51("Bcc", "elementor") });
|
|
6740
|
-
var MetaDataField = () => /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 0.5 }, /* @__PURE__ */ React102.createElement(
|
|
6740
|
+
var MetaDataField = () => /* @__PURE__ */ React102.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 0.5 }, /* @__PURE__ */ React102.createElement(ControlFormLabel, null, __51("Metadata", "elementor")), /* @__PURE__ */ React102.createElement(
|
|
6741
6741
|
ChipsControl,
|
|
6742
6742
|
{
|
|
6743
6743
|
options: [
|
|
@@ -6761,25 +6761,650 @@ var SendAsField = () => /* @__PURE__ */ React102.createElement(PropKeyProvider,
|
|
|
6761
6761
|
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))));
|
|
6762
6762
|
var EmailFormActionControl = createControl(() => {
|
|
6763
6763
|
const { value, setValue, ...propContext } = useBoundProp(emailPropTypeUtil);
|
|
6764
|
-
return /* @__PURE__ */ React102.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React102.createElement(Stack17, { gap: 2 }, /* @__PURE__ */ React102.createElement(
|
|
6764
|
+
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)));
|
|
6765
6765
|
});
|
|
6766
6766
|
|
|
6767
|
-
// src/
|
|
6767
|
+
// src/controls/size-control/unstable-size-control.tsx
|
|
6768
|
+
import * as React108 from "react";
|
|
6769
|
+
import { sizePropTypeUtil as sizePropTypeUtil6 } from "@elementor/editor-props";
|
|
6770
|
+
|
|
6771
|
+
// src/controls/size-control/size-component.tsx
|
|
6772
|
+
import * as React107 from "react";
|
|
6773
|
+
import { useEffect as useEffect15 } from "react";
|
|
6774
|
+
import { useActiveBreakpoint as useActiveBreakpoint4 } from "@elementor/editor-responsive";
|
|
6775
|
+
import { Box as Box25, usePopupState as usePopupState9 } from "@elementor/ui";
|
|
6776
|
+
|
|
6777
|
+
// src/controls/size-control/size-field.tsx
|
|
6778
|
+
import * as React105 from "react";
|
|
6779
|
+
import { MathFunctionIcon as MathFunctionIcon3 } from "@elementor/icons";
|
|
6780
|
+
import { InputAdornment as InputAdornment5 } from "@elementor/ui";
|
|
6781
|
+
|
|
6782
|
+
// src/controls/size-control/sync/get-units.ts
|
|
6783
|
+
var getLengthUnits = () => {
|
|
6784
|
+
return window.elementor?.config?.size_units?.length ?? [];
|
|
6785
|
+
};
|
|
6786
|
+
var getAngleUnits = () => {
|
|
6787
|
+
return window.elementor?.config?.size_units?.angle ?? [];
|
|
6788
|
+
};
|
|
6789
|
+
var getTimeUnits = () => {
|
|
6790
|
+
return window.elementor?.config?.size_units?.time ?? [];
|
|
6791
|
+
};
|
|
6792
|
+
var getExtendedUnits = () => {
|
|
6793
|
+
return window.elementor?.config?.size_units?.extended_units ?? [];
|
|
6794
|
+
};
|
|
6795
|
+
|
|
6796
|
+
// src/controls/size-control/utils/is-extended-unit.ts
|
|
6797
|
+
var isExtendedUnit = (unit) => {
|
|
6798
|
+
const extendedUnits = getExtendedUnits();
|
|
6799
|
+
return extendedUnits.includes(unit);
|
|
6800
|
+
};
|
|
6801
|
+
|
|
6802
|
+
// src/controls/size-control/hooks/use-size-unit-keyboard.tsx
|
|
6803
|
+
var UNIT_KEY_PATTERN = /^[a-zA-Z%]$/;
|
|
6804
|
+
var useSizeUnitKeyboard = ({ unit, units: units2, onUnitChange }) => {
|
|
6805
|
+
const { appendKey, startsWith } = useTypingBuffer();
|
|
6806
|
+
const onUnitKeyDown = (event) => {
|
|
6807
|
+
if (units2.length === 0) {
|
|
6808
|
+
return;
|
|
6809
|
+
}
|
|
6810
|
+
const { key, altKey, ctrlKey, metaKey } = event;
|
|
6811
|
+
if (altKey || ctrlKey || metaKey) {
|
|
6812
|
+
return;
|
|
6813
|
+
}
|
|
6814
|
+
if (isExtendedUnit(unit) && isNumericValue(key)) {
|
|
6815
|
+
const [defaultUnit] = units2;
|
|
6816
|
+
if (defaultUnit) {
|
|
6817
|
+
onUnitChange(defaultUnit);
|
|
6818
|
+
}
|
|
6819
|
+
return;
|
|
6820
|
+
}
|
|
6821
|
+
if (!UNIT_KEY_PATTERN.test(key)) {
|
|
6822
|
+
return;
|
|
6823
|
+
}
|
|
6824
|
+
event.preventDefault();
|
|
6825
|
+
const updatedBuffer = appendKey(key.toLowerCase());
|
|
6826
|
+
const matchedUnit = units2.find((u) => startsWith(u, updatedBuffer));
|
|
6827
|
+
if (matchedUnit) {
|
|
6828
|
+
onUnitChange(matchedUnit);
|
|
6829
|
+
}
|
|
6830
|
+
};
|
|
6831
|
+
return { onUnitKeyDown };
|
|
6832
|
+
};
|
|
6833
|
+
var isNumericValue = (value) => {
|
|
6834
|
+
if (typeof value === "number") {
|
|
6835
|
+
return !isNaN(value);
|
|
6836
|
+
}
|
|
6837
|
+
if (typeof value === "string") {
|
|
6838
|
+
return value.trim() !== "" && !isNaN(Number(value));
|
|
6839
|
+
}
|
|
6840
|
+
return false;
|
|
6841
|
+
};
|
|
6842
|
+
|
|
6843
|
+
// src/controls/size-control/hooks/use-size-value.ts
|
|
6844
|
+
import { useMemo as useMemo15 } from "react";
|
|
6845
|
+
|
|
6846
|
+
// src/controls/size-control/utils/resolve-size-value.ts
|
|
6847
|
+
var DEFAULT_SIZE2 = "";
|
|
6848
|
+
var EXTENDED_UNITS = {
|
|
6849
|
+
auto: "auto",
|
|
6850
|
+
custom: "custom"
|
|
6851
|
+
};
|
|
6852
|
+
var resolveSizeValue = (value, context) => {
|
|
6853
|
+
if (!value) {
|
|
6854
|
+
return value;
|
|
6855
|
+
}
|
|
6856
|
+
const { units: units2, defaultUnit } = context;
|
|
6857
|
+
const unit = resolveFallbackUnit(value.unit, units2, defaultUnit);
|
|
6858
|
+
if (unit === EXTENDED_UNITS.auto) {
|
|
6859
|
+
return { size: DEFAULT_SIZE2, unit };
|
|
6860
|
+
}
|
|
6861
|
+
if (unit === EXTENDED_UNITS.custom) {
|
|
6862
|
+
return { size: String(value.size ?? DEFAULT_SIZE2), unit };
|
|
6863
|
+
}
|
|
6864
|
+
return {
|
|
6865
|
+
size: sanitizeSize(value.size) ?? DEFAULT_SIZE2,
|
|
6866
|
+
unit
|
|
6867
|
+
};
|
|
6868
|
+
};
|
|
6869
|
+
var resolveSizeOnUnitChange = (size, unit) => {
|
|
6870
|
+
return isExtendedUnit(unit) ? DEFAULT_SIZE2 : size;
|
|
6871
|
+
};
|
|
6872
|
+
var createDefaultSizeValue = (units2, defaultUnit) => {
|
|
6873
|
+
let [unit] = units2;
|
|
6874
|
+
if (defaultUnit !== void 0) {
|
|
6875
|
+
unit = resolveFallbackUnit(defaultUnit, units2);
|
|
6876
|
+
}
|
|
6877
|
+
return { size: DEFAULT_SIZE2, unit };
|
|
6878
|
+
};
|
|
6879
|
+
var resolveFallbackUnit = (unit, units2, defaultUnit) => {
|
|
6880
|
+
if (units2.includes(unit)) {
|
|
6881
|
+
return unit;
|
|
6882
|
+
}
|
|
6883
|
+
if (defaultUnit && units2.includes(defaultUnit)) {
|
|
6884
|
+
return defaultUnit;
|
|
6885
|
+
}
|
|
6886
|
+
return units2[0] ?? "";
|
|
6887
|
+
};
|
|
6888
|
+
var sanitizeSize = (size) => {
|
|
6889
|
+
if (typeof size === "number" && isNaN(size)) {
|
|
6890
|
+
return DEFAULT_SIZE2;
|
|
6891
|
+
}
|
|
6892
|
+
return size;
|
|
6893
|
+
};
|
|
6894
|
+
|
|
6895
|
+
// src/controls/size-control/hooks/use-size-value.ts
|
|
6896
|
+
var useSizeValue = ({
|
|
6897
|
+
value,
|
|
6898
|
+
setValue,
|
|
6899
|
+
units: units2,
|
|
6900
|
+
defaultUnit
|
|
6901
|
+
}) => {
|
|
6902
|
+
const resolvedValue = useMemo15(
|
|
6903
|
+
() => resolveSizeValue(value, { units: units2, defaultUnit }),
|
|
6904
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6905
|
+
[value?.size, value?.unit, defaultUnit]
|
|
6906
|
+
);
|
|
6907
|
+
const [sizeValue, setSizeValue] = useSyncExternalState({
|
|
6908
|
+
external: resolvedValue,
|
|
6909
|
+
setExternal: (newState, options, meta) => {
|
|
6910
|
+
if (newState !== null) {
|
|
6911
|
+
setValue(newState, options, meta);
|
|
6912
|
+
}
|
|
6913
|
+
},
|
|
6914
|
+
persistWhen: (next) => hasChanged(next, resolvedValue),
|
|
6915
|
+
fallback: () => createDefaultSizeValue(units2, defaultUnit)
|
|
6916
|
+
});
|
|
6917
|
+
const setSize = (newSize, isInputValid = true) => {
|
|
6918
|
+
if (isExtendedUnit(sizeValue.unit)) {
|
|
6919
|
+
return;
|
|
6920
|
+
}
|
|
6921
|
+
const trimmed = newSize.trim();
|
|
6922
|
+
const parsed = Number(trimmed);
|
|
6923
|
+
const newState = {
|
|
6924
|
+
...sizeValue,
|
|
6925
|
+
size: trimmed && !isNaN(parsed) ? parsed : ""
|
|
6926
|
+
};
|
|
6927
|
+
setSizeValue(newState, void 0, { validation: () => isInputValid });
|
|
6928
|
+
};
|
|
6929
|
+
const setUnit = (unit) => {
|
|
6930
|
+
setSizeValue({ unit, size: resolveSizeOnUnitChange(sizeValue.size, unit) });
|
|
6931
|
+
};
|
|
6932
|
+
return {
|
|
6933
|
+
size: sizeValue.size,
|
|
6934
|
+
unit: sizeValue.unit,
|
|
6935
|
+
setSize,
|
|
6936
|
+
setUnit
|
|
6937
|
+
};
|
|
6938
|
+
};
|
|
6939
|
+
var hasChanged = (next, current) => {
|
|
6940
|
+
return next?.size !== current?.size || next?.unit !== current?.unit;
|
|
6941
|
+
};
|
|
6942
|
+
|
|
6943
|
+
// src/controls/size-control/ui/size-input.tsx
|
|
6944
|
+
import * as React103 from "react";
|
|
6945
|
+
import { forwardRef as forwardRef11 } from "react";
|
|
6946
|
+
var SizeInput2 = forwardRef11(
|
|
6947
|
+
({
|
|
6948
|
+
id,
|
|
6949
|
+
type,
|
|
6950
|
+
value,
|
|
6951
|
+
onBlur,
|
|
6952
|
+
onKeyUp,
|
|
6953
|
+
focused,
|
|
6954
|
+
disabled,
|
|
6955
|
+
onChange,
|
|
6956
|
+
onKeyDown,
|
|
6957
|
+
InputProps,
|
|
6958
|
+
inputProps,
|
|
6959
|
+
placeholder
|
|
6960
|
+
}, ref) => {
|
|
6961
|
+
return /* @__PURE__ */ React103.createElement(
|
|
6962
|
+
NumberInput,
|
|
6963
|
+
{
|
|
6964
|
+
id,
|
|
6965
|
+
ref,
|
|
6966
|
+
size: "tiny",
|
|
6967
|
+
fullWidth: true,
|
|
6968
|
+
type,
|
|
6969
|
+
value,
|
|
6970
|
+
placeholder,
|
|
6971
|
+
onKeyUp,
|
|
6972
|
+
focused,
|
|
6973
|
+
disabled,
|
|
6974
|
+
onKeyDown,
|
|
6975
|
+
onInput: onChange,
|
|
6976
|
+
onBlur,
|
|
6977
|
+
InputProps,
|
|
6978
|
+
inputProps,
|
|
6979
|
+
sx: getCursorStyle(InputProps?.readOnly ?? false)
|
|
6980
|
+
}
|
|
6981
|
+
);
|
|
6982
|
+
}
|
|
6983
|
+
);
|
|
6984
|
+
var getCursorStyle = (readOnly) => ({
|
|
6985
|
+
input: { cursor: readOnly ? "default !important" : void 0 }
|
|
6986
|
+
});
|
|
6987
|
+
|
|
6988
|
+
// src/controls/size-control/ui/unit-selector.tsx
|
|
6768
6989
|
import * as React104 from "react";
|
|
6769
|
-
import {
|
|
6990
|
+
import { useId as useId3 } from "react";
|
|
6991
|
+
import { MenuListItem as MenuListItem7 } from "@elementor/editor-ui";
|
|
6992
|
+
import { bindMenu as bindMenu2, bindTrigger as bindTrigger6, Button as Button6, Menu as Menu3, styled as styled9, usePopupState as usePopupState8 } from "@elementor/ui";
|
|
6993
|
+
var menuItemContentStyles = {
|
|
6994
|
+
display: "flex",
|
|
6995
|
+
flexDirection: "column",
|
|
6996
|
+
justifyContent: "center"
|
|
6997
|
+
};
|
|
6998
|
+
var UnitSelector = ({
|
|
6999
|
+
value,
|
|
7000
|
+
isActive,
|
|
7001
|
+
onSelect,
|
|
7002
|
+
options,
|
|
7003
|
+
disabled,
|
|
7004
|
+
menuItemsAttributes = {},
|
|
7005
|
+
optionLabelOverrides = {}
|
|
7006
|
+
}) => {
|
|
7007
|
+
const popupState = usePopupState8({
|
|
7008
|
+
variant: "popover",
|
|
7009
|
+
popupId: useId3()
|
|
7010
|
+
});
|
|
7011
|
+
const handleMenuItemClick = (option) => {
|
|
7012
|
+
onSelect(option);
|
|
7013
|
+
popupState.close();
|
|
7014
|
+
};
|
|
7015
|
+
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(
|
|
7016
|
+
MenuListItem7,
|
|
7017
|
+
{
|
|
7018
|
+
key: option,
|
|
7019
|
+
onClick: () => handleMenuItemClick(option),
|
|
7020
|
+
...menuItemsAttributes?.[option],
|
|
7021
|
+
primaryTypographyProps: {
|
|
7022
|
+
variant: "caption",
|
|
7023
|
+
sx: {
|
|
7024
|
+
...menuItemContentStyles,
|
|
7025
|
+
lineHeight: "1"
|
|
7026
|
+
}
|
|
7027
|
+
},
|
|
7028
|
+
menuItemTextProps: {
|
|
7029
|
+
sx: menuItemContentStyles
|
|
7030
|
+
}
|
|
7031
|
+
},
|
|
7032
|
+
optionLabelOverrides[option] ?? option.toUpperCase()
|
|
7033
|
+
))));
|
|
7034
|
+
};
|
|
7035
|
+
var StyledButton2 = styled9(Button6, {
|
|
7036
|
+
shouldForwardProp: (prop) => prop !== "isActive"
|
|
7037
|
+
})(({ isActive, theme }) => ({
|
|
7038
|
+
color: isActive ? theme.palette.text.primary : theme.palette.text.tertiary,
|
|
7039
|
+
font: "inherit",
|
|
7040
|
+
minWidth: "initial",
|
|
7041
|
+
textTransform: "uppercase"
|
|
7042
|
+
}));
|
|
7043
|
+
|
|
7044
|
+
// src/controls/size-control/utils/has-size-value.ts
|
|
7045
|
+
var hasSizeValue = (size) => {
|
|
7046
|
+
return Boolean(size) || size === 0;
|
|
7047
|
+
};
|
|
7048
|
+
|
|
7049
|
+
// src/controls/size-control/size-field.tsx
|
|
7050
|
+
var UNIT_DISPLAY_LABELS_OVERRIDES = {
|
|
7051
|
+
custom: /* @__PURE__ */ React105.createElement(MathFunctionIcon3, { fontSize: "tiny" })
|
|
7052
|
+
};
|
|
7053
|
+
var SizeField = ({
|
|
7054
|
+
value,
|
|
7055
|
+
focused,
|
|
7056
|
+
disabled,
|
|
7057
|
+
InputProps,
|
|
7058
|
+
defaultUnit,
|
|
7059
|
+
placeholder,
|
|
7060
|
+
onUnitChange,
|
|
7061
|
+
startIcon,
|
|
7062
|
+
ariaLabel,
|
|
7063
|
+
onKeyDown,
|
|
7064
|
+
setValue,
|
|
7065
|
+
onBlur,
|
|
7066
|
+
units: units2,
|
|
7067
|
+
min,
|
|
7068
|
+
unitSelectorProps
|
|
7069
|
+
}) => {
|
|
7070
|
+
const { size, unit, setSize, setUnit } = useSizeValue({ value, setValue, units: units2, defaultUnit });
|
|
7071
|
+
const handleUnitChange = (newUnit) => {
|
|
7072
|
+
setUnit(newUnit);
|
|
7073
|
+
onUnitChange?.(newUnit);
|
|
7074
|
+
};
|
|
7075
|
+
const { onUnitKeyDown } = useSizeUnitKeyboard({ unit, onUnitChange: handleUnitChange, units: units2 });
|
|
7076
|
+
const handleKeyDown = (event) => {
|
|
7077
|
+
onUnitKeyDown(event);
|
|
7078
|
+
onKeyDown?.(event);
|
|
7079
|
+
};
|
|
7080
|
+
const handleChange = (event) => {
|
|
7081
|
+
const newSize = event.target.value;
|
|
7082
|
+
const isInputValid = event.target.validity.valid;
|
|
7083
|
+
setSize(newSize, isInputValid);
|
|
7084
|
+
};
|
|
7085
|
+
const inputType = isExtendedUnit(unit) ? "text" : "number";
|
|
7086
|
+
return /* @__PURE__ */ React105.createElement(
|
|
7087
|
+
SizeInput2,
|
|
7088
|
+
{
|
|
7089
|
+
disabled,
|
|
7090
|
+
focused,
|
|
7091
|
+
type: inputType,
|
|
7092
|
+
value: size,
|
|
7093
|
+
placeholder,
|
|
7094
|
+
onBlur,
|
|
7095
|
+
onKeyDown: handleKeyDown,
|
|
7096
|
+
onChange: handleChange,
|
|
7097
|
+
InputProps: {
|
|
7098
|
+
...InputProps,
|
|
7099
|
+
autoComplete: "off",
|
|
7100
|
+
readOnly: isExtendedUnit(unit),
|
|
7101
|
+
startAdornment: startIcon && /* @__PURE__ */ React105.createElement(InputAdornment5, { position: "start", disabled }, startIcon),
|
|
7102
|
+
endAdornment: /* @__PURE__ */ React105.createElement(InputAdornment5, { position: "end" }, /* @__PURE__ */ React105.createElement(
|
|
7103
|
+
UnitSelector,
|
|
7104
|
+
{
|
|
7105
|
+
options: units2,
|
|
7106
|
+
value: unit,
|
|
7107
|
+
onSelect: handleUnitChange,
|
|
7108
|
+
isActive: unitSelectorProps?.isActive ?? hasSizeValue(size),
|
|
7109
|
+
...unitSelectorProps,
|
|
7110
|
+
optionLabelOverrides: UNIT_DISPLAY_LABELS_OVERRIDES
|
|
7111
|
+
}
|
|
7112
|
+
))
|
|
7113
|
+
},
|
|
7114
|
+
inputProps: { min, step: "any", "arial-label": ariaLabel }
|
|
7115
|
+
}
|
|
7116
|
+
);
|
|
7117
|
+
};
|
|
7118
|
+
|
|
7119
|
+
// src/controls/size-control/ui/text-field-popover.tsx
|
|
7120
|
+
import * as React106 from "react";
|
|
7121
|
+
import { useEffect as useEffect14, useRef as useRef25 } from "react";
|
|
7122
|
+
import { PopoverHeader as PopoverHeader4 } from "@elementor/editor-ui";
|
|
7123
|
+
import { MathFunctionIcon as MathFunctionIcon4 } from "@elementor/icons";
|
|
7124
|
+
import { bindPopover as bindPopover7, Popover as Popover7, TextField as TextField9 } from "@elementor/ui";
|
|
7125
|
+
import { __ as __52 } from "@wordpress/i18n";
|
|
7126
|
+
var SIZE10 = "tiny";
|
|
7127
|
+
var TextFieldPopover2 = ({ popupState, anchorRef, value, onChange, onClose }) => {
|
|
7128
|
+
const inputRef = useRef25(null);
|
|
7129
|
+
useEffect14(() => {
|
|
7130
|
+
if (popupState.isOpen) {
|
|
7131
|
+
requestAnimationFrame(() => {
|
|
7132
|
+
if (inputRef.current) {
|
|
7133
|
+
inputRef.current.focus();
|
|
7134
|
+
}
|
|
7135
|
+
});
|
|
7136
|
+
}
|
|
7137
|
+
}, [popupState.isOpen]);
|
|
7138
|
+
const handleKeyDown = (event) => {
|
|
7139
|
+
if (event.key.toLowerCase() === "enter") {
|
|
7140
|
+
handleClose();
|
|
7141
|
+
}
|
|
7142
|
+
};
|
|
7143
|
+
const handleClose = () => {
|
|
7144
|
+
onClose?.();
|
|
7145
|
+
popupState.close();
|
|
7146
|
+
};
|
|
7147
|
+
return /* @__PURE__ */ React106.createElement(
|
|
7148
|
+
Popover7,
|
|
7149
|
+
{
|
|
7150
|
+
disablePortal: true,
|
|
7151
|
+
slotProps: {
|
|
7152
|
+
paper: {
|
|
7153
|
+
sx: {
|
|
7154
|
+
borderRadius: 2,
|
|
7155
|
+
width: anchorRef.current?.offsetWidth + "px"
|
|
7156
|
+
}
|
|
7157
|
+
}
|
|
7158
|
+
},
|
|
7159
|
+
...bindPopover7(popupState),
|
|
7160
|
+
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
7161
|
+
transformOrigin: { vertical: "top", horizontal: "center" },
|
|
7162
|
+
onClose: handleClose
|
|
7163
|
+
},
|
|
7164
|
+
/* @__PURE__ */ React106.createElement(
|
|
7165
|
+
PopoverHeader4,
|
|
7166
|
+
{
|
|
7167
|
+
title: __52("CSS function", "elementor"),
|
|
7168
|
+
onClose: handleClose,
|
|
7169
|
+
icon: /* @__PURE__ */ React106.createElement(MathFunctionIcon4, { fontSize: SIZE10 })
|
|
7170
|
+
}
|
|
7171
|
+
),
|
|
7172
|
+
/* @__PURE__ */ React106.createElement(
|
|
7173
|
+
TextField9,
|
|
7174
|
+
{
|
|
7175
|
+
value,
|
|
7176
|
+
onChange,
|
|
7177
|
+
onKeyDown: handleKeyDown,
|
|
7178
|
+
size: "tiny",
|
|
7179
|
+
type: "text",
|
|
7180
|
+
fullWidth: true,
|
|
7181
|
+
inputProps: {
|
|
7182
|
+
ref: inputRef
|
|
7183
|
+
},
|
|
7184
|
+
sx: { pt: 0, pr: 1.5, pb: 1.5, pl: 1.5 }
|
|
7185
|
+
}
|
|
7186
|
+
)
|
|
7187
|
+
);
|
|
7188
|
+
};
|
|
7189
|
+
|
|
7190
|
+
// src/controls/size-control/size-component.tsx
|
|
7191
|
+
var SizeComponent = ({
|
|
7192
|
+
anchorRef,
|
|
7193
|
+
isUnitActive,
|
|
7194
|
+
SizeFieldWrapper = React107.Fragment,
|
|
7195
|
+
...sizeFieldProps
|
|
7196
|
+
}) => {
|
|
7197
|
+
const popupState = usePopupState9({ variant: "popover" });
|
|
7198
|
+
const activeBreakpoint = useActiveBreakpoint4();
|
|
7199
|
+
const isCustomUnit = sizeFieldProps?.value?.unit === EXTENDED_UNITS.custom;
|
|
7200
|
+
const hasCustomUnitOption = sizeFieldProps.units.includes(EXTENDED_UNITS.custom);
|
|
7201
|
+
useEffect15(() => {
|
|
7202
|
+
if (popupState && popupState.isOpen) {
|
|
7203
|
+
popupState.close();
|
|
7204
|
+
}
|
|
7205
|
+
}, [activeBreakpoint]);
|
|
7206
|
+
const handleCustomSizeChange = (event) => {
|
|
7207
|
+
sizeFieldProps.setValue({
|
|
7208
|
+
size: event.target.value,
|
|
7209
|
+
unit: EXTENDED_UNITS.custom
|
|
7210
|
+
});
|
|
7211
|
+
};
|
|
7212
|
+
const handleSizeFieldClick = (event) => {
|
|
7213
|
+
if (event.target.closest("input") && isCustomUnit) {
|
|
7214
|
+
popupState.open(anchorRef?.current);
|
|
7215
|
+
}
|
|
7216
|
+
};
|
|
7217
|
+
const handleUnitChange = (unit) => {
|
|
7218
|
+
if (unit === EXTENDED_UNITS.custom && anchorRef?.current) {
|
|
7219
|
+
popupState.open(anchorRef.current);
|
|
7220
|
+
}
|
|
7221
|
+
};
|
|
7222
|
+
const popupAttributes = {
|
|
7223
|
+
"aria-controls": popupState.isOpen ? popupState.popupId : void 0,
|
|
7224
|
+
"aria-haspopup": true
|
|
7225
|
+
};
|
|
7226
|
+
return /* @__PURE__ */ React107.createElement(React107.Fragment, null, /* @__PURE__ */ React107.createElement(SizeFieldWrapper, null, /* @__PURE__ */ React107.createElement(Box25, null, /* @__PURE__ */ React107.createElement(
|
|
7227
|
+
SizeField,
|
|
7228
|
+
{
|
|
7229
|
+
focused: popupState.isOpen ? true : void 0,
|
|
7230
|
+
onUnitChange: handleUnitChange,
|
|
7231
|
+
InputProps: {
|
|
7232
|
+
...popupAttributes,
|
|
7233
|
+
onClick: handleSizeFieldClick
|
|
7234
|
+
},
|
|
7235
|
+
unitSelectorProps: {
|
|
7236
|
+
menuItemsAttributes: hasCustomUnitOption ? { custom: popupAttributes } : void 0,
|
|
7237
|
+
isActive: isUnitActive
|
|
7238
|
+
},
|
|
7239
|
+
...sizeFieldProps
|
|
7240
|
+
}
|
|
7241
|
+
))), popupState.isOpen && anchorRef?.current && /* @__PURE__ */ React107.createElement(
|
|
7242
|
+
TextFieldPopover2,
|
|
7243
|
+
{
|
|
7244
|
+
popupState,
|
|
7245
|
+
anchorRef,
|
|
7246
|
+
value: String(sizeFieldProps?.value?.size ?? ""),
|
|
7247
|
+
onChange: handleCustomSizeChange,
|
|
7248
|
+
onClose: () => {
|
|
7249
|
+
}
|
|
7250
|
+
}
|
|
7251
|
+
));
|
|
7252
|
+
};
|
|
7253
|
+
|
|
7254
|
+
// src/controls/size-control/utils/resolve-bound-prop-value.ts
|
|
7255
|
+
import { sizePropTypeUtil as sizePropTypeUtil5 } from "@elementor/editor-props";
|
|
7256
|
+
var resolveBoundPropValue = (value, boundPropPlaceholder, propPlaceholder) => {
|
|
7257
|
+
let sizeValue = null;
|
|
7258
|
+
if (validateSizeValue(value)) {
|
|
7259
|
+
sizeValue = value;
|
|
7260
|
+
} else if (validateSizeValue(boundPropPlaceholder)) {
|
|
7261
|
+
sizeValue = { size: "", unit: boundPropPlaceholder?.unit };
|
|
7262
|
+
}
|
|
7263
|
+
return {
|
|
7264
|
+
sizeValue,
|
|
7265
|
+
isUnitHighlighted: shouldHighlightUnit(value),
|
|
7266
|
+
placeholder: resolvePlaceholder(propPlaceholder, boundPropPlaceholder)
|
|
7267
|
+
};
|
|
7268
|
+
};
|
|
7269
|
+
var validateSizeValue = (value) => {
|
|
7270
|
+
if (!value) {
|
|
7271
|
+
return false;
|
|
7272
|
+
}
|
|
7273
|
+
const sizePropValue = sizePropTypeUtil5.create(value);
|
|
7274
|
+
return sizePropTypeUtil5.isValid(sizePropValue);
|
|
7275
|
+
};
|
|
7276
|
+
var resolvePlaceholder = (propPlaceholder, boundPropPlaceholder) => {
|
|
7277
|
+
if (propPlaceholder) {
|
|
7278
|
+
return propPlaceholder;
|
|
7279
|
+
}
|
|
7280
|
+
const size = boundPropPlaceholder?.size;
|
|
7281
|
+
if (size === void 0) {
|
|
7282
|
+
return void 0;
|
|
7283
|
+
}
|
|
7284
|
+
if (typeof size === "number") {
|
|
7285
|
+
return size.toString();
|
|
7286
|
+
}
|
|
7287
|
+
return size;
|
|
7288
|
+
};
|
|
7289
|
+
var shouldHighlightUnit = (value) => {
|
|
7290
|
+
if (!value) {
|
|
7291
|
+
return false;
|
|
7292
|
+
}
|
|
7293
|
+
if (value.unit === EXTENDED_UNITS.auto) {
|
|
7294
|
+
return true;
|
|
7295
|
+
}
|
|
7296
|
+
return hasSizeValue(value.size);
|
|
7297
|
+
};
|
|
7298
|
+
|
|
7299
|
+
// src/controls/size-control/utils/settings/get-prop-type-settings.ts
|
|
7300
|
+
var getPropTypeSettings = (propType) => {
|
|
7301
|
+
return propType.settings;
|
|
7302
|
+
};
|
|
7303
|
+
|
|
7304
|
+
// src/controls/size-control/utils/settings/get-default-unit.ts
|
|
7305
|
+
var getDefaultUnit = (propType) => {
|
|
7306
|
+
return getPropTypeSettings(propType)?.default_unit;
|
|
7307
|
+
};
|
|
7308
|
+
|
|
7309
|
+
// src/controls/size-control/utils/settings/get-size-units.ts
|
|
7310
|
+
var getVariantUnits = (variant) => {
|
|
7311
|
+
const map = {
|
|
7312
|
+
length: getLengthUnits,
|
|
7313
|
+
angle: getAngleUnits,
|
|
7314
|
+
time: getTimeUnits
|
|
7315
|
+
};
|
|
7316
|
+
return map[variant]();
|
|
7317
|
+
};
|
|
7318
|
+
var getSettingsUnits = (propType) => {
|
|
7319
|
+
return getPropTypeSettings(propType)?.units;
|
|
7320
|
+
};
|
|
7321
|
+
var getSizeUnits = (propType, variant) => {
|
|
7322
|
+
return getSettingsUnits(propType) ?? getVariantUnits(variant);
|
|
7323
|
+
};
|
|
7324
|
+
|
|
7325
|
+
// src/controls/size-control/utils/should-nullify-value.ts
|
|
7326
|
+
var conditions = [
|
|
7327
|
+
(value) => value?.size === null || value?.size === void 0 || value?.size === "",
|
|
7328
|
+
(value) => value?.unit !== EXTENDED_UNITS.auto,
|
|
7329
|
+
(value) => value?.unit !== EXTENDED_UNITS.custom
|
|
7330
|
+
];
|
|
7331
|
+
var shouldNullifyValue = (value) => {
|
|
7332
|
+
return conditions.every((condition) => condition(value));
|
|
7333
|
+
};
|
|
7334
|
+
|
|
7335
|
+
// src/controls/size-control/unstable-size-control.tsx
|
|
7336
|
+
var UnstableSizeControl = createControl(
|
|
7337
|
+
({ variant = "length", placeholder: propPlaceholder, anchorRef, startIcon, ariaLabel, min }) => {
|
|
7338
|
+
const {
|
|
7339
|
+
value,
|
|
7340
|
+
setValue,
|
|
7341
|
+
propType,
|
|
7342
|
+
placeholder: boundPropPlaceholder,
|
|
7343
|
+
restoreValue
|
|
7344
|
+
} = useBoundProp(sizePropTypeUtil6);
|
|
7345
|
+
const { sizeValue, isUnitHighlighted, placeholder } = resolveBoundPropValue(
|
|
7346
|
+
value,
|
|
7347
|
+
boundPropPlaceholder,
|
|
7348
|
+
propPlaceholder
|
|
7349
|
+
);
|
|
7350
|
+
const units2 = getSizeUnits(propType, variant);
|
|
7351
|
+
const defaultUnit = getDefaultUnit(propType);
|
|
7352
|
+
const handleBlur = () => {
|
|
7353
|
+
const isRequired = propType.settings.required;
|
|
7354
|
+
if (shouldNullifyValue(value) && !isRequired) {
|
|
7355
|
+
setValue(null);
|
|
7356
|
+
}
|
|
7357
|
+
if (isRequired) {
|
|
7358
|
+
restoreValue();
|
|
7359
|
+
}
|
|
7360
|
+
};
|
|
7361
|
+
const handleChange = (newValue, options, meta) => {
|
|
7362
|
+
setValue(newValue, options, {
|
|
7363
|
+
...meta,
|
|
7364
|
+
validation: () => {
|
|
7365
|
+
if (propType.settings.required) {
|
|
7366
|
+
return newValue.size !== "";
|
|
7367
|
+
}
|
|
7368
|
+
return meta?.validation ? meta.validation(newValue) : true;
|
|
7369
|
+
}
|
|
7370
|
+
});
|
|
7371
|
+
};
|
|
7372
|
+
return /* @__PURE__ */ React108.createElement(
|
|
7373
|
+
SizeComponent,
|
|
7374
|
+
{
|
|
7375
|
+
units: units2,
|
|
7376
|
+
value: sizeValue,
|
|
7377
|
+
anchorRef,
|
|
7378
|
+
placeholder,
|
|
7379
|
+
defaultUnit,
|
|
7380
|
+
isUnitActive: isUnitHighlighted,
|
|
7381
|
+
onBlur: handleBlur,
|
|
7382
|
+
setValue: handleChange,
|
|
7383
|
+
SizeFieldWrapper: ControlActions,
|
|
7384
|
+
startIcon,
|
|
7385
|
+
ariaLabel,
|
|
7386
|
+
min
|
|
7387
|
+
}
|
|
7388
|
+
);
|
|
7389
|
+
}
|
|
7390
|
+
);
|
|
7391
|
+
|
|
7392
|
+
// src/components/promotions/display-conditions-control.tsx
|
|
7393
|
+
import * as React110 from "react";
|
|
7394
|
+
import { useRef as useRef26 } from "react";
|
|
6770
7395
|
import { SitemapIcon } from "@elementor/icons";
|
|
6771
7396
|
import { IconButton as IconButton8, Stack as Stack18, Tooltip as Tooltip9 } from "@elementor/ui";
|
|
6772
|
-
import { __ as
|
|
7397
|
+
import { __ as __53 } from "@wordpress/i18n";
|
|
6773
7398
|
|
|
6774
7399
|
// src/components/promotions/promotion-trigger.tsx
|
|
6775
|
-
import * as
|
|
6776
|
-
import { forwardRef as
|
|
7400
|
+
import * as React109 from "react";
|
|
7401
|
+
import { forwardRef as forwardRef12, useCallback as useCallback4, useImperativeHandle, useState as useState17 } from "react";
|
|
6777
7402
|
import { PromotionChip as PromotionChip2, PromotionInfotip } from "@elementor/editor-ui";
|
|
6778
|
-
import { Box as
|
|
7403
|
+
import { Box as Box26 } from "@elementor/ui";
|
|
6779
7404
|
function getV4Promotion(key) {
|
|
6780
7405
|
return window.elementor?.config?.v4Promotions?.[key];
|
|
6781
7406
|
}
|
|
6782
|
-
var PromotionTrigger =
|
|
7407
|
+
var PromotionTrigger = forwardRef12(
|
|
6783
7408
|
({ promotionKey, children, trackingData }, ref) => {
|
|
6784
7409
|
const [isOpen, setIsOpen] = useState17(false);
|
|
6785
7410
|
const promotion = getV4Promotion(promotionKey);
|
|
@@ -6792,7 +7417,7 @@ var PromotionTrigger = forwardRef11(
|
|
|
6792
7417
|
});
|
|
6793
7418
|
}, [trackingData]);
|
|
6794
7419
|
useImperativeHandle(ref, () => ({ toggle }), [toggle]);
|
|
6795
|
-
return /* @__PURE__ */
|
|
7420
|
+
return /* @__PURE__ */ React109.createElement(React109.Fragment, null, promotion && /* @__PURE__ */ React109.createElement(
|
|
6796
7421
|
PromotionInfotip,
|
|
6797
7422
|
{
|
|
6798
7423
|
title: promotion.title,
|
|
@@ -6806,8 +7431,8 @@ var PromotionTrigger = forwardRef11(
|
|
|
6806
7431
|
},
|
|
6807
7432
|
onCtaClick: () => trackUpgradePromotionClick(trackingData)
|
|
6808
7433
|
},
|
|
6809
|
-
/* @__PURE__ */
|
|
6810
|
-
|
|
7434
|
+
/* @__PURE__ */ React109.createElement(
|
|
7435
|
+
Box26,
|
|
6811
7436
|
{
|
|
6812
7437
|
onClick: (e) => {
|
|
6813
7438
|
e.stopPropagation();
|
|
@@ -6815,18 +7440,18 @@ var PromotionTrigger = forwardRef11(
|
|
|
6815
7440
|
},
|
|
6816
7441
|
sx: { cursor: "pointer", display: "inline-flex" }
|
|
6817
7442
|
},
|
|
6818
|
-
children ?? /* @__PURE__ */
|
|
7443
|
+
children ?? /* @__PURE__ */ React109.createElement(PromotionChip2, null)
|
|
6819
7444
|
)
|
|
6820
7445
|
));
|
|
6821
7446
|
}
|
|
6822
7447
|
);
|
|
6823
7448
|
|
|
6824
7449
|
// src/components/promotions/display-conditions-control.tsx
|
|
6825
|
-
var ARIA_LABEL =
|
|
7450
|
+
var ARIA_LABEL = __53("Display Conditions", "elementor");
|
|
6826
7451
|
var TRACKING_DATA = { target_name: "display_conditions", location_l2: "general" };
|
|
6827
7452
|
var DisplayConditionsControl = createControl(() => {
|
|
6828
|
-
const triggerRef =
|
|
6829
|
-
return /* @__PURE__ */
|
|
7453
|
+
const triggerRef = useRef26(null);
|
|
7454
|
+
return /* @__PURE__ */ React110.createElement(
|
|
6830
7455
|
Stack18,
|
|
6831
7456
|
{
|
|
6832
7457
|
direction: "row",
|
|
@@ -6836,8 +7461,8 @@ var DisplayConditionsControl = createControl(() => {
|
|
|
6836
7461
|
alignItems: "center"
|
|
6837
7462
|
}
|
|
6838
7463
|
},
|
|
6839
|
-
/* @__PURE__ */
|
|
6840
|
-
/* @__PURE__ */
|
|
7464
|
+
/* @__PURE__ */ React110.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
|
|
7465
|
+
/* @__PURE__ */ React110.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React110.createElement(
|
|
6841
7466
|
IconButton8,
|
|
6842
7467
|
{
|
|
6843
7468
|
size: "tiny",
|
|
@@ -6850,22 +7475,22 @@ var DisplayConditionsControl = createControl(() => {
|
|
|
6850
7475
|
borderRadius: 1
|
|
6851
7476
|
}
|
|
6852
7477
|
},
|
|
6853
|
-
/* @__PURE__ */
|
|
7478
|
+
/* @__PURE__ */ React110.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
|
|
6854
7479
|
))
|
|
6855
7480
|
);
|
|
6856
7481
|
});
|
|
6857
7482
|
|
|
6858
7483
|
// src/components/promotions/attributes-control.tsx
|
|
6859
|
-
import * as
|
|
6860
|
-
import { useRef as
|
|
7484
|
+
import * as React111 from "react";
|
|
7485
|
+
import { useRef as useRef27 } from "react";
|
|
6861
7486
|
import { PlusIcon as PlusIcon3 } from "@elementor/icons";
|
|
6862
7487
|
import { Stack as Stack19, Tooltip as Tooltip10 } from "@elementor/ui";
|
|
6863
|
-
import { __ as
|
|
6864
|
-
var ARIA_LABEL2 =
|
|
7488
|
+
import { __ as __54 } from "@wordpress/i18n";
|
|
7489
|
+
var ARIA_LABEL2 = __54("Attributes", "elementor");
|
|
6865
7490
|
var TRACKING_DATA2 = { target_name: "attributes", location_l2: "general" };
|
|
6866
7491
|
var AttributesControl = createControl(() => {
|
|
6867
|
-
const triggerRef =
|
|
6868
|
-
return /* @__PURE__ */
|
|
7492
|
+
const triggerRef = useRef27(null);
|
|
7493
|
+
return /* @__PURE__ */ React111.createElement(
|
|
6869
7494
|
Stack19,
|
|
6870
7495
|
{
|
|
6871
7496
|
direction: "row",
|
|
@@ -6875,8 +7500,8 @@ var AttributesControl = createControl(() => {
|
|
|
6875
7500
|
alignItems: "center"
|
|
6876
7501
|
}
|
|
6877
7502
|
},
|
|
6878
|
-
/* @__PURE__ */
|
|
6879
|
-
/* @__PURE__ */
|
|
7503
|
+
/* @__PURE__ */ React111.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
|
|
7504
|
+
/* @__PURE__ */ React111.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React111.createElement(
|
|
6880
7505
|
PlusIcon3,
|
|
6881
7506
|
{
|
|
6882
7507
|
"aria-label": ARIA_LABEL2,
|
|
@@ -6890,30 +7515,30 @@ var AttributesControl = createControl(() => {
|
|
|
6890
7515
|
});
|
|
6891
7516
|
|
|
6892
7517
|
// src/components/icon-buttons/clear-icon-button.tsx
|
|
6893
|
-
import * as
|
|
7518
|
+
import * as React112 from "react";
|
|
6894
7519
|
import { BrushBigIcon } from "@elementor/icons";
|
|
6895
|
-
import { IconButton as IconButton9, styled as
|
|
6896
|
-
var CustomIconButton =
|
|
7520
|
+
import { IconButton as IconButton9, styled as styled10, Tooltip as Tooltip11 } from "@elementor/ui";
|
|
7521
|
+
var CustomIconButton = styled10(IconButton9)(({ theme }) => ({
|
|
6897
7522
|
width: theme.spacing(2.5),
|
|
6898
7523
|
height: theme.spacing(2.5)
|
|
6899
7524
|
}));
|
|
6900
|
-
var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */
|
|
7525
|
+
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 })));
|
|
6901
7526
|
|
|
6902
7527
|
// src/components/repeater/repeater.tsx
|
|
6903
|
-
import * as
|
|
6904
|
-
import { useEffect as
|
|
7528
|
+
import * as React113 from "react";
|
|
7529
|
+
import { useEffect as useEffect16, useState as useState18 } from "react";
|
|
6905
7530
|
import { CopyIcon as CopyIcon2, EyeIcon as EyeIcon2, EyeOffIcon as EyeOffIcon2, PlusIcon as PlusIcon4, XIcon as XIcon4 } from "@elementor/icons";
|
|
6906
7531
|
import {
|
|
6907
|
-
bindPopover as
|
|
6908
|
-
bindTrigger as
|
|
6909
|
-
Box as
|
|
7532
|
+
bindPopover as bindPopover8,
|
|
7533
|
+
bindTrigger as bindTrigger7,
|
|
7534
|
+
Box as Box27,
|
|
6910
7535
|
IconButton as IconButton10,
|
|
6911
7536
|
Infotip as Infotip4,
|
|
6912
7537
|
Tooltip as Tooltip12,
|
|
6913
|
-
usePopupState as
|
|
7538
|
+
usePopupState as usePopupState10
|
|
6914
7539
|
} from "@elementor/ui";
|
|
6915
|
-
import { __ as
|
|
6916
|
-
var
|
|
7540
|
+
import { __ as __55 } from "@wordpress/i18n";
|
|
7541
|
+
var SIZE11 = "tiny";
|
|
6917
7542
|
var EMPTY_OPEN_ITEM2 = -1;
|
|
6918
7543
|
var Repeater3 = ({
|
|
6919
7544
|
label,
|
|
@@ -6993,20 +7618,20 @@ var Repeater3 = ({
|
|
|
6993
7618
|
};
|
|
6994
7619
|
const isButtonDisabled = disabled || disableAddItemButton;
|
|
6995
7620
|
const shouldShowInfotip = isButtonDisabled && addButtonInfotipContent;
|
|
6996
|
-
const addButton = /* @__PURE__ */
|
|
7621
|
+
const addButton = /* @__PURE__ */ React113.createElement(
|
|
6997
7622
|
IconButton10,
|
|
6998
7623
|
{
|
|
6999
|
-
size:
|
|
7624
|
+
size: SIZE11,
|
|
7000
7625
|
sx: {
|
|
7001
7626
|
ml: "auto"
|
|
7002
7627
|
},
|
|
7003
7628
|
disabled: isButtonDisabled,
|
|
7004
7629
|
onClick: addRepeaterItem,
|
|
7005
|
-
"aria-label":
|
|
7630
|
+
"aria-label": __55("Add item", "elementor")
|
|
7006
7631
|
},
|
|
7007
|
-
/* @__PURE__ */
|
|
7632
|
+
/* @__PURE__ */ React113.createElement(PlusIcon4, { fontSize: SIZE11 })
|
|
7008
7633
|
);
|
|
7009
|
-
return /* @__PURE__ */
|
|
7634
|
+
return /* @__PURE__ */ React113.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React113.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React113.createElement(
|
|
7010
7635
|
Infotip4,
|
|
7011
7636
|
{
|
|
7012
7637
|
placement: "right",
|
|
@@ -7014,20 +7639,20 @@ var Repeater3 = ({
|
|
|
7014
7639
|
color: "secondary",
|
|
7015
7640
|
slotProps: { popper: { sx: { width: 300 } } }
|
|
7016
7641
|
},
|
|
7017
|
-
/* @__PURE__ */
|
|
7018
|
-
) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */
|
|
7642
|
+
/* @__PURE__ */ React113.createElement(Box27, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
|
|
7643
|
+
) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React113.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
|
|
7019
7644
|
const index = uniqueKeys.indexOf(key);
|
|
7020
7645
|
const value = items2[index];
|
|
7021
7646
|
if (!value) {
|
|
7022
7647
|
return null;
|
|
7023
7648
|
}
|
|
7024
|
-
return /* @__PURE__ */
|
|
7649
|
+
return /* @__PURE__ */ React113.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React113.createElement(
|
|
7025
7650
|
RepeaterItem,
|
|
7026
7651
|
{
|
|
7027
7652
|
disabled,
|
|
7028
7653
|
propDisabled: value?.disabled,
|
|
7029
|
-
label: /* @__PURE__ */
|
|
7030
|
-
startIcon: /* @__PURE__ */
|
|
7654
|
+
label: /* @__PURE__ */ React113.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React113.createElement(itemSettings.Label, { value, index })),
|
|
7655
|
+
startIcon: /* @__PURE__ */ React113.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React113.createElement(itemSettings.Icon, { value })),
|
|
7031
7656
|
removeItem: () => removeRepeaterItem(index),
|
|
7032
7657
|
duplicateItem: () => duplicateRepeaterItem(index),
|
|
7033
7658
|
toggleDisableItem: () => toggleDisableRepeaterItem(index),
|
|
@@ -7039,7 +7664,7 @@ var Repeater3 = ({
|
|
|
7039
7664
|
actions: itemSettings.actions,
|
|
7040
7665
|
value
|
|
7041
7666
|
},
|
|
7042
|
-
(props) => /* @__PURE__ */
|
|
7667
|
+
(props) => /* @__PURE__ */ React113.createElement(
|
|
7043
7668
|
itemSettings.Content,
|
|
7044
7669
|
{
|
|
7045
7670
|
...props,
|
|
@@ -7069,27 +7694,27 @@ var RepeaterItem = ({
|
|
|
7069
7694
|
value
|
|
7070
7695
|
}) => {
|
|
7071
7696
|
const { popoverState, popoverProps, ref, setRef } = usePopover(openOnMount, onOpen);
|
|
7072
|
-
const duplicateLabel =
|
|
7073
|
-
const toggleLabel = propDisabled ?
|
|
7074
|
-
const removeLabel =
|
|
7075
|
-
return /* @__PURE__ */
|
|
7697
|
+
const duplicateLabel = __55("Duplicate", "elementor");
|
|
7698
|
+
const toggleLabel = propDisabled ? __55("Show", "elementor") : __55("Hide", "elementor");
|
|
7699
|
+
const removeLabel = __55("Remove", "elementor");
|
|
7700
|
+
return /* @__PURE__ */ React113.createElement(React113.Fragment, null, /* @__PURE__ */ React113.createElement(
|
|
7076
7701
|
RepeaterTag,
|
|
7077
7702
|
{
|
|
7078
7703
|
disabled,
|
|
7079
7704
|
label,
|
|
7080
7705
|
ref: setRef,
|
|
7081
|
-
"aria-label":
|
|
7082
|
-
...
|
|
7706
|
+
"aria-label": __55("Open item", "elementor"),
|
|
7707
|
+
...bindTrigger7(popoverState),
|
|
7083
7708
|
startIcon,
|
|
7084
|
-
actions: /* @__PURE__ */
|
|
7709
|
+
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 }))))
|
|
7085
7710
|
}
|
|
7086
|
-
), /* @__PURE__ */
|
|
7711
|
+
), /* @__PURE__ */ React113.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React113.createElement(Box27, null, children({ anchorEl: ref }))));
|
|
7087
7712
|
};
|
|
7088
7713
|
var usePopover = (openOnMount, onOpen) => {
|
|
7089
7714
|
const [ref, setRef] = useState18(null);
|
|
7090
|
-
const popoverState =
|
|
7091
|
-
const popoverProps =
|
|
7092
|
-
|
|
7715
|
+
const popoverState = usePopupState10({ variant: "popover" });
|
|
7716
|
+
const popoverProps = bindPopover8(popoverState);
|
|
7717
|
+
useEffect16(() => {
|
|
7093
7718
|
if (openOnMount && ref) {
|
|
7094
7719
|
popoverState.open(ref);
|
|
7095
7720
|
onOpen?.();
|
|
@@ -7104,8 +7729,8 @@ var usePopover = (openOnMount, onOpen) => {
|
|
|
7104
7729
|
};
|
|
7105
7730
|
|
|
7106
7731
|
// src/components/inline-editor-toolbar.tsx
|
|
7107
|
-
import * as
|
|
7108
|
-
import { useMemo as
|
|
7732
|
+
import * as React115 from "react";
|
|
7733
|
+
import { useMemo as useMemo16, useRef as useRef29, useState as useState19 } from "react";
|
|
7109
7734
|
import { getContainer, getElementSetting } from "@elementor/editor-elements";
|
|
7110
7735
|
import {
|
|
7111
7736
|
BoldIcon,
|
|
@@ -7118,23 +7743,23 @@ import {
|
|
|
7118
7743
|
UnderlineIcon
|
|
7119
7744
|
} from "@elementor/icons";
|
|
7120
7745
|
import {
|
|
7121
|
-
Box as
|
|
7746
|
+
Box as Box28,
|
|
7122
7747
|
IconButton as IconButton11,
|
|
7123
7748
|
ToggleButton as ToggleButton3,
|
|
7124
7749
|
ToggleButtonGroup as ToggleButtonGroup2,
|
|
7125
7750
|
toggleButtonGroupClasses,
|
|
7126
7751
|
Tooltip as Tooltip14,
|
|
7127
|
-
usePopupState as
|
|
7752
|
+
usePopupState as usePopupState11
|
|
7128
7753
|
} from "@elementor/ui";
|
|
7129
7754
|
import { useEditorState } from "@tiptap/react";
|
|
7130
|
-
import { __ as
|
|
7755
|
+
import { __ as __57 } from "@wordpress/i18n";
|
|
7131
7756
|
|
|
7132
7757
|
// src/components/url-popover.tsx
|
|
7133
|
-
import * as
|
|
7134
|
-
import { useEffect as
|
|
7758
|
+
import * as React114 from "react";
|
|
7759
|
+
import { useEffect as useEffect17, useRef as useRef28 } from "react";
|
|
7135
7760
|
import { ExternalLinkIcon } from "@elementor/icons";
|
|
7136
|
-
import { bindPopover as
|
|
7137
|
-
import { __ as
|
|
7761
|
+
import { bindPopover as bindPopover9, Popover as Popover8, Stack as Stack20, TextField as TextField10, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
|
|
7762
|
+
import { __ as __56 } from "@wordpress/i18n";
|
|
7138
7763
|
var UrlPopover = ({
|
|
7139
7764
|
popupState,
|
|
7140
7765
|
restoreValue,
|
|
@@ -7144,8 +7769,8 @@ var UrlPopover = ({
|
|
|
7144
7769
|
openInNewTab,
|
|
7145
7770
|
onToggleNewTab
|
|
7146
7771
|
}) => {
|
|
7147
|
-
const inputRef =
|
|
7148
|
-
|
|
7772
|
+
const inputRef = useRef28(null);
|
|
7773
|
+
useEffect17(() => {
|
|
7149
7774
|
if (popupState.isOpen) {
|
|
7150
7775
|
requestAnimationFrame(() => inputRef.current?.focus());
|
|
7151
7776
|
}
|
|
@@ -7154,41 +7779,41 @@ var UrlPopover = ({
|
|
|
7154
7779
|
restoreValue();
|
|
7155
7780
|
popupState.close();
|
|
7156
7781
|
};
|
|
7157
|
-
return /* @__PURE__ */
|
|
7158
|
-
|
|
7782
|
+
return /* @__PURE__ */ React114.createElement(
|
|
7783
|
+
Popover8,
|
|
7159
7784
|
{
|
|
7160
7785
|
slotProps: {
|
|
7161
7786
|
paper: { sx: { borderRadius: "16px", width: anchorRef.current?.offsetWidth + "px", marginTop: -1 } }
|
|
7162
7787
|
},
|
|
7163
|
-
...
|
|
7788
|
+
...bindPopover9(popupState),
|
|
7164
7789
|
anchorOrigin: { vertical: "top", horizontal: "left" },
|
|
7165
7790
|
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
7166
7791
|
onClose: handleClose
|
|
7167
7792
|
},
|
|
7168
|
-
/* @__PURE__ */
|
|
7169
|
-
|
|
7793
|
+
/* @__PURE__ */ React114.createElement(Stack20, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React114.createElement(
|
|
7794
|
+
TextField10,
|
|
7170
7795
|
{
|
|
7171
7796
|
value,
|
|
7172
7797
|
onChange,
|
|
7173
7798
|
size: "tiny",
|
|
7174
7799
|
fullWidth: true,
|
|
7175
|
-
placeholder:
|
|
7800
|
+
placeholder: __56("Type a URL", "elementor"),
|
|
7176
7801
|
inputProps: { ref: inputRef },
|
|
7177
7802
|
color: "secondary",
|
|
7178
7803
|
InputProps: { sx: { borderRadius: "8px" } },
|
|
7179
7804
|
onKeyUp: (event) => event.key === "Enter" && handleClose()
|
|
7180
7805
|
}
|
|
7181
|
-
), /* @__PURE__ */
|
|
7806
|
+
), /* @__PURE__ */ React114.createElement(Tooltip13, { title: __56("Open in a new tab", "elementor") }, /* @__PURE__ */ React114.createElement(
|
|
7182
7807
|
ToggleButton2,
|
|
7183
7808
|
{
|
|
7184
7809
|
size: "tiny",
|
|
7185
7810
|
value: "newTab",
|
|
7186
7811
|
selected: openInNewTab,
|
|
7187
7812
|
onClick: onToggleNewTab,
|
|
7188
|
-
"aria-label":
|
|
7813
|
+
"aria-label": __56("Open in a new tab", "elementor"),
|
|
7189
7814
|
sx: { borderRadius: "8px" }
|
|
7190
7815
|
},
|
|
7191
|
-
/* @__PURE__ */
|
|
7816
|
+
/* @__PURE__ */ React114.createElement(ExternalLinkIcon, { fontSize: "tiny" })
|
|
7192
7817
|
)))
|
|
7193
7818
|
);
|
|
7194
7819
|
};
|
|
@@ -7197,14 +7822,14 @@ var UrlPopover = ({
|
|
|
7197
7822
|
var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
7198
7823
|
const [urlValue, setUrlValue] = useState19("");
|
|
7199
7824
|
const [openInNewTab, setOpenInNewTab] = useState19(false);
|
|
7200
|
-
const toolbarRef =
|
|
7201
|
-
const linkPopupState =
|
|
7825
|
+
const toolbarRef = useRef29(null);
|
|
7826
|
+
const linkPopupState = usePopupState11({ variant: "popover" });
|
|
7202
7827
|
const isElementClickable = elementId ? checkIfElementIsClickable(elementId) : false;
|
|
7203
7828
|
const editorState = useEditorState({
|
|
7204
7829
|
editor,
|
|
7205
7830
|
selector: (ctx) => possibleFormats.filter((format) => ctx.editor.isActive(format))
|
|
7206
7831
|
});
|
|
7207
|
-
const formatButtonsList =
|
|
7832
|
+
const formatButtonsList = useMemo16(() => {
|
|
7208
7833
|
const buttons = Object.values(formatButtons);
|
|
7209
7834
|
if (isElementClickable) {
|
|
7210
7835
|
return buttons.filter((button) => button.action !== "link");
|
|
@@ -7241,11 +7866,11 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7241
7866
|
}
|
|
7242
7867
|
linkPopupState.close();
|
|
7243
7868
|
};
|
|
7244
|
-
|
|
7869
|
+
React115.useEffect(() => {
|
|
7245
7870
|
editor?.commands?.focus();
|
|
7246
7871
|
}, [editor]);
|
|
7247
|
-
return /* @__PURE__ */
|
|
7248
|
-
|
|
7872
|
+
return /* @__PURE__ */ React115.createElement(
|
|
7873
|
+
Box28,
|
|
7249
7874
|
{
|
|
7250
7875
|
ref: toolbarRef,
|
|
7251
7876
|
sx: {
|
|
@@ -7261,8 +7886,8 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7261
7886
|
...sx
|
|
7262
7887
|
}
|
|
7263
7888
|
},
|
|
7264
|
-
/* @__PURE__ */
|
|
7265
|
-
/* @__PURE__ */
|
|
7889
|
+
/* @__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)),
|
|
7890
|
+
/* @__PURE__ */ React115.createElement(
|
|
7266
7891
|
ToggleButtonGroup2,
|
|
7267
7892
|
{
|
|
7268
7893
|
value: editorState,
|
|
@@ -7284,7 +7909,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7284
7909
|
}
|
|
7285
7910
|
}
|
|
7286
7911
|
},
|
|
7287
|
-
formatButtonsList.map((button) => /* @__PURE__ */
|
|
7912
|
+
formatButtonsList.map((button) => /* @__PURE__ */ React115.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React115.createElement(
|
|
7288
7913
|
ToggleButton3,
|
|
7289
7914
|
{
|
|
7290
7915
|
value: button.action,
|
|
@@ -7302,7 +7927,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
|
|
|
7302
7927
|
button.icon
|
|
7303
7928
|
)))
|
|
7304
7929
|
),
|
|
7305
|
-
/* @__PURE__ */
|
|
7930
|
+
/* @__PURE__ */ React115.createElement(
|
|
7306
7931
|
UrlPopover,
|
|
7307
7932
|
{
|
|
7308
7933
|
popupState: linkPopupState,
|
|
@@ -7325,64 +7950,64 @@ var checkIfElementIsClickable = (elementId) => {
|
|
|
7325
7950
|
};
|
|
7326
7951
|
var toolbarButtons = {
|
|
7327
7952
|
clear: {
|
|
7328
|
-
label:
|
|
7329
|
-
icon: /* @__PURE__ */
|
|
7953
|
+
label: __57("Clear", "elementor"),
|
|
7954
|
+
icon: /* @__PURE__ */ React115.createElement(MinusIcon2, { fontSize: "tiny" }),
|
|
7330
7955
|
action: "clear",
|
|
7331
7956
|
method: (editor) => {
|
|
7332
7957
|
editor.chain().focus().clearNodes().unsetAllMarks().run();
|
|
7333
7958
|
}
|
|
7334
7959
|
},
|
|
7335
7960
|
bold: {
|
|
7336
|
-
label:
|
|
7337
|
-
icon: /* @__PURE__ */
|
|
7961
|
+
label: __57("Bold", "elementor"),
|
|
7962
|
+
icon: /* @__PURE__ */ React115.createElement(BoldIcon, { fontSize: "tiny" }),
|
|
7338
7963
|
action: "bold",
|
|
7339
7964
|
method: (editor) => {
|
|
7340
7965
|
editor.chain().focus().toggleBold().run();
|
|
7341
7966
|
}
|
|
7342
7967
|
},
|
|
7343
7968
|
italic: {
|
|
7344
|
-
label:
|
|
7345
|
-
icon: /* @__PURE__ */
|
|
7969
|
+
label: __57("Italic", "elementor"),
|
|
7970
|
+
icon: /* @__PURE__ */ React115.createElement(ItalicIcon, { fontSize: "tiny" }),
|
|
7346
7971
|
action: "italic",
|
|
7347
7972
|
method: (editor) => {
|
|
7348
7973
|
editor.chain().focus().toggleItalic().run();
|
|
7349
7974
|
}
|
|
7350
7975
|
},
|
|
7351
7976
|
underline: {
|
|
7352
|
-
label:
|
|
7353
|
-
icon: /* @__PURE__ */
|
|
7977
|
+
label: __57("Underline", "elementor"),
|
|
7978
|
+
icon: /* @__PURE__ */ React115.createElement(UnderlineIcon, { fontSize: "tiny" }),
|
|
7354
7979
|
action: "underline",
|
|
7355
7980
|
method: (editor) => {
|
|
7356
7981
|
editor.chain().focus().toggleUnderline().run();
|
|
7357
7982
|
}
|
|
7358
7983
|
},
|
|
7359
7984
|
strike: {
|
|
7360
|
-
label:
|
|
7361
|
-
icon: /* @__PURE__ */
|
|
7985
|
+
label: __57("Strikethrough", "elementor"),
|
|
7986
|
+
icon: /* @__PURE__ */ React115.createElement(StrikethroughIcon, { fontSize: "tiny" }),
|
|
7362
7987
|
action: "strike",
|
|
7363
7988
|
method: (editor) => {
|
|
7364
7989
|
editor.chain().focus().toggleStrike().run();
|
|
7365
7990
|
}
|
|
7366
7991
|
},
|
|
7367
7992
|
superscript: {
|
|
7368
|
-
label:
|
|
7369
|
-
icon: /* @__PURE__ */
|
|
7993
|
+
label: __57("Superscript", "elementor"),
|
|
7994
|
+
icon: /* @__PURE__ */ React115.createElement(SuperscriptIcon, { fontSize: "tiny" }),
|
|
7370
7995
|
action: "superscript",
|
|
7371
7996
|
method: (editor) => {
|
|
7372
7997
|
editor.chain().focus().toggleSuperscript().run();
|
|
7373
7998
|
}
|
|
7374
7999
|
},
|
|
7375
8000
|
subscript: {
|
|
7376
|
-
label:
|
|
7377
|
-
icon: /* @__PURE__ */
|
|
8001
|
+
label: __57("Subscript", "elementor"),
|
|
8002
|
+
icon: /* @__PURE__ */ React115.createElement(SubscriptIcon, { fontSize: "tiny" }),
|
|
7378
8003
|
action: "subscript",
|
|
7379
8004
|
method: (editor) => {
|
|
7380
8005
|
editor.chain().focus().toggleSubscript().run();
|
|
7381
8006
|
}
|
|
7382
8007
|
},
|
|
7383
8008
|
link: {
|
|
7384
|
-
label:
|
|
7385
|
-
icon: /* @__PURE__ */
|
|
8009
|
+
label: __57("Link", "elementor"),
|
|
8010
|
+
icon: /* @__PURE__ */ React115.createElement(LinkIcon3, { fontSize: "tiny" }),
|
|
7386
8011
|
action: "link",
|
|
7387
8012
|
method: null
|
|
7388
8013
|
}
|
|
@@ -7391,13 +8016,13 @@ var { clear: clearButton, ...formatButtons } = toolbarButtons;
|
|
|
7391
8016
|
var possibleFormats = Object.keys(formatButtons);
|
|
7392
8017
|
|
|
7393
8018
|
// src/components/size/unstable-size-field.tsx
|
|
7394
|
-
import * as
|
|
7395
|
-
import { InputAdornment as
|
|
8019
|
+
import * as React118 from "react";
|
|
8020
|
+
import { InputAdornment as InputAdornment6 } from "@elementor/ui";
|
|
7396
8021
|
|
|
7397
8022
|
// src/hooks/use-size-value.ts
|
|
7398
8023
|
var DEFAULT_UNIT2 = "px";
|
|
7399
|
-
var
|
|
7400
|
-
var
|
|
8024
|
+
var DEFAULT_SIZE3 = "";
|
|
8025
|
+
var useSizeValue2 = (externalValue, onChange, defaultUnit) => {
|
|
7401
8026
|
const [sizeValue, setSizeValue] = useSyncExternalState({
|
|
7402
8027
|
external: externalValue,
|
|
7403
8028
|
setExternal: (newState) => {
|
|
@@ -7406,7 +8031,7 @@ var useSizeValue = (externalValue, onChange, defaultUnit) => {
|
|
|
7406
8031
|
}
|
|
7407
8032
|
},
|
|
7408
8033
|
persistWhen: (newState) => differsFromExternal(newState, externalValue),
|
|
7409
|
-
fallback: () => ({ size:
|
|
8034
|
+
fallback: () => ({ size: DEFAULT_SIZE3, unit: defaultUnit ?? DEFAULT_UNIT2 })
|
|
7410
8035
|
});
|
|
7411
8036
|
const setSize = (value) => {
|
|
7412
8037
|
const newState = {
|
|
@@ -7434,44 +8059,44 @@ var differsFromExternal = (newState, externalState) => {
|
|
|
7434
8059
|
};
|
|
7435
8060
|
|
|
7436
8061
|
// src/components/size/unit-select.tsx
|
|
7437
|
-
import * as
|
|
7438
|
-
import { useId as
|
|
7439
|
-
import { MenuListItem as
|
|
7440
|
-
import { bindMenu as
|
|
7441
|
-
var
|
|
8062
|
+
import * as React116 from "react";
|
|
8063
|
+
import { useId as useId4 } from "react";
|
|
8064
|
+
import { MenuListItem as MenuListItem8 } from "@elementor/editor-ui";
|
|
8065
|
+
import { bindMenu as bindMenu3, bindTrigger as bindTrigger8, Button as Button7, Menu as Menu4, styled as styled11, usePopupState as usePopupState12 } from "@elementor/ui";
|
|
8066
|
+
var menuItemContentStyles2 = {
|
|
7442
8067
|
display: "flex",
|
|
7443
8068
|
flexDirection: "column",
|
|
7444
8069
|
justifyContent: "center"
|
|
7445
8070
|
};
|
|
7446
8071
|
var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
|
|
7447
|
-
const popupState =
|
|
8072
|
+
const popupState = usePopupState12({
|
|
7448
8073
|
variant: "popover",
|
|
7449
|
-
popupId:
|
|
8074
|
+
popupId: useId4()
|
|
7450
8075
|
});
|
|
7451
8076
|
const handleMenuItemClick = (index) => {
|
|
7452
8077
|
onClick(options[index]);
|
|
7453
8078
|
popupState.close();
|
|
7454
8079
|
};
|
|
7455
|
-
return /* @__PURE__ */
|
|
7456
|
-
|
|
8080
|
+
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(
|
|
8081
|
+
MenuListItem8,
|
|
7457
8082
|
{
|
|
7458
8083
|
key: option,
|
|
7459
8084
|
onClick: () => handleMenuItemClick(index),
|
|
7460
8085
|
primaryTypographyProps: {
|
|
7461
8086
|
variant: "caption",
|
|
7462
8087
|
sx: {
|
|
7463
|
-
...
|
|
8088
|
+
...menuItemContentStyles2,
|
|
7464
8089
|
lineHeight: "1"
|
|
7465
8090
|
}
|
|
7466
8091
|
},
|
|
7467
8092
|
menuItemTextProps: {
|
|
7468
|
-
sx:
|
|
8093
|
+
sx: menuItemContentStyles2
|
|
7469
8094
|
}
|
|
7470
8095
|
},
|
|
7471
8096
|
option.toUpperCase()
|
|
7472
8097
|
))));
|
|
7473
8098
|
};
|
|
7474
|
-
var
|
|
8099
|
+
var StyledButton3 = styled11(Button7, {
|
|
7475
8100
|
shouldForwardProp: (prop) => prop !== "isPrimaryColor"
|
|
7476
8101
|
})(({ isPrimaryColor, theme }) => ({
|
|
7477
8102
|
color: isPrimaryColor ? theme.palette.text.primary : theme.palette.text.tertiary,
|
|
@@ -7481,11 +8106,11 @@ var StyledButton2 = styled10(Button6, {
|
|
|
7481
8106
|
}));
|
|
7482
8107
|
|
|
7483
8108
|
// src/components/size/unstable-size-input.tsx
|
|
7484
|
-
import * as
|
|
7485
|
-
import { forwardRef as
|
|
7486
|
-
var UnstableSizeInput =
|
|
8109
|
+
import * as React117 from "react";
|
|
8110
|
+
import { forwardRef as forwardRef13 } from "react";
|
|
8111
|
+
var UnstableSizeInput = forwardRef13(
|
|
7487
8112
|
({ type, value, onChange, onKeyDown, onKeyUp, InputProps, onBlur, focused, disabled }, ref) => {
|
|
7488
|
-
return /* @__PURE__ */
|
|
8113
|
+
return /* @__PURE__ */ React117.createElement(
|
|
7489
8114
|
NumberInput,
|
|
7490
8115
|
{
|
|
7491
8116
|
ref,
|
|
@@ -7500,12 +8125,12 @@ var UnstableSizeInput = forwardRef12(
|
|
|
7500
8125
|
onInput: onChange,
|
|
7501
8126
|
onBlur,
|
|
7502
8127
|
InputProps,
|
|
7503
|
-
sx:
|
|
8128
|
+
sx: getCursorStyle2(InputProps?.readOnly ?? false)
|
|
7504
8129
|
}
|
|
7505
8130
|
);
|
|
7506
8131
|
}
|
|
7507
8132
|
);
|
|
7508
|
-
var
|
|
8133
|
+
var getCursorStyle2 = (readOnly) => ({
|
|
7509
8134
|
input: { cursor: readOnly ? "default !important" : void 0 }
|
|
7510
8135
|
});
|
|
7511
8136
|
|
|
@@ -7519,11 +8144,11 @@ var UnstableSizeField = ({
|
|
|
7519
8144
|
defaultUnit,
|
|
7520
8145
|
startIcon
|
|
7521
8146
|
}) => {
|
|
7522
|
-
const { size, unit, setSize, setUnit } =
|
|
7523
|
-
const
|
|
8147
|
+
const { size, unit, setSize, setUnit } = useSizeValue2(value, onChange, defaultUnit);
|
|
8148
|
+
const shouldHighlightUnit2 = () => {
|
|
7524
8149
|
return hasValue(size);
|
|
7525
8150
|
};
|
|
7526
|
-
return /* @__PURE__ */
|
|
8151
|
+
return /* @__PURE__ */ React118.createElement(
|
|
7527
8152
|
UnstableSizeInput,
|
|
7528
8153
|
{
|
|
7529
8154
|
type: "number",
|
|
@@ -7532,14 +8157,14 @@ var UnstableSizeField = ({
|
|
|
7532
8157
|
onChange: (event) => setSize(event.target.value),
|
|
7533
8158
|
InputProps: {
|
|
7534
8159
|
...InputProps,
|
|
7535
|
-
startAdornment: startIcon && /* @__PURE__ */
|
|
7536
|
-
endAdornment: /* @__PURE__ */
|
|
8160
|
+
startAdornment: startIcon && /* @__PURE__ */ React118.createElement(InputAdornment6, { position: "start" }, startIcon),
|
|
8161
|
+
endAdornment: /* @__PURE__ */ React118.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React118.createElement(
|
|
7537
8162
|
UnitSelect,
|
|
7538
8163
|
{
|
|
7539
8164
|
options: units2,
|
|
7540
8165
|
value: unit,
|
|
7541
8166
|
onClick: setUnit,
|
|
7542
|
-
showPrimaryColor:
|
|
8167
|
+
showPrimaryColor: shouldHighlightUnit2()
|
|
7543
8168
|
}
|
|
7544
8169
|
))
|
|
7545
8170
|
}
|
|
@@ -7551,7 +8176,7 @@ var hasValue = (value) => {
|
|
|
7551
8176
|
};
|
|
7552
8177
|
|
|
7553
8178
|
// src/hooks/use-font-families.ts
|
|
7554
|
-
import { useMemo as
|
|
8179
|
+
import { useMemo as useMemo17 } from "react";
|
|
7555
8180
|
import { getElementorConfig } from "@elementor/editor-v1-adapters";
|
|
7556
8181
|
var getFontControlConfig = () => {
|
|
7557
8182
|
const { controls } = getElementorConfig();
|
|
@@ -7559,7 +8184,7 @@ var getFontControlConfig = () => {
|
|
|
7559
8184
|
};
|
|
7560
8185
|
var useFontFamilies = () => {
|
|
7561
8186
|
const { groups, options } = getFontControlConfig();
|
|
7562
|
-
return
|
|
8187
|
+
return useMemo17(() => {
|
|
7563
8188
|
if (!groups || !options) {
|
|
7564
8189
|
return [];
|
|
7565
8190
|
}
|
|
@@ -7624,6 +8249,7 @@ export {
|
|
|
7624
8249
|
Repeater3 as Repeater,
|
|
7625
8250
|
SelectControl,
|
|
7626
8251
|
SelectControlWrapper,
|
|
8252
|
+
SizeComponent,
|
|
7627
8253
|
SizeControl,
|
|
7628
8254
|
StrokeControl,
|
|
7629
8255
|
SvgMediaControl,
|
|
@@ -7635,6 +8261,7 @@ export {
|
|
|
7635
8261
|
TransformRepeaterControl,
|
|
7636
8262
|
TransformSettingsControl,
|
|
7637
8263
|
TransitionRepeaterControl,
|
|
8264
|
+
UnstableSizeControl,
|
|
7638
8265
|
UnstableSizeField,
|
|
7639
8266
|
UrlControl,
|
|
7640
8267
|
VideoMediaControl,
|