@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.mjs CHANGED
@@ -653,14 +653,14 @@ var TextFieldInnerSelection = forwardRef2(
653
653
  id
654
654
  }, ref) => {
655
655
  const { placeholder: boundPropPlaceholder } = useBoundProp(sizePropTypeUtil);
656
- const getCursorStyle2 = () => ({
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: getCursorStyle2(),
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 shouldExtendTransitionProperties = () => {
5798
+ var shouldShowAllTransitionProperties = () => {
5798
5799
  if (!hasProInstalled()) {
5799
- return false;
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 shouldExtendTransitionProperties() ? baseProperties : [baseProperties[0]];
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) => set.add(prop.value));
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 To", "elementor"),
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 Subject", "elementor"),
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 address should appear as the sender?", "elementor")
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("Meta data", "elementor")), /* @__PURE__ */ React102.createElement(
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(ControlFormLabel, 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)));
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/components/promotions/display-conditions-control.tsx
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 { useRef as useRef25 } from "react";
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 __52 } from "@wordpress/i18n";
7385
+ import { __ as __53 } from "@wordpress/i18n";
6755
7386
 
6756
7387
  // src/components/promotions/promotion-trigger.tsx
6757
- import * as React103 from "react";
6758
- import { forwardRef as forwardRef11, useCallback as useCallback4, useImperativeHandle, useState as useState17 } from "react";
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 Box25 } from "@elementor/ui";
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 = forwardRef11(
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__ */ React103.createElement(React103.Fragment, null, promotion && /* @__PURE__ */ React103.createElement(
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__ */ React103.createElement(
6792
- Box25,
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__ */ React103.createElement(PromotionChip2, null)
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 = __52("Display Conditions", "elementor");
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 = useRef25(null);
6811
- return /* @__PURE__ */ React104.createElement(
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__ */ React104.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
6822
- /* @__PURE__ */ React104.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React104.createElement(
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__ */ React104.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
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 React105 from "react";
6842
- import { useRef as useRef26 } from "react";
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 __53 } from "@wordpress/i18n";
6846
- var ARIA_LABEL2 = __53("Attributes", "elementor");
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 = useRef26(null);
6850
- return /* @__PURE__ */ React105.createElement(
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__ */ React105.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
6861
- /* @__PURE__ */ React105.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React105.createElement(
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 React106 from "react";
7506
+ import * as React112 from "react";
6876
7507
  import { BrushBigIcon } from "@elementor/icons";
6877
- import { IconButton as IconButton9, styled as styled9, Tooltip as Tooltip11 } from "@elementor/ui";
6878
- var CustomIconButton = styled9(IconButton9)(({ theme }) => ({
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__ */ React106.createElement(Tooltip11, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React106.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React106.createElement(BrushBigIcon, { fontSize: size })));
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 React107 from "react";
6886
- import { useEffect as useEffect14, useState as useState18 } from "react";
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 bindPopover7,
6890
- bindTrigger as bindTrigger6,
6891
- Box as Box26,
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 usePopupState8
7526
+ usePopupState as usePopupState10
6896
7527
  } from "@elementor/ui";
6897
- import { __ as __54 } from "@wordpress/i18n";
6898
- var SIZE10 = "tiny";
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__ */ React107.createElement(
7609
+ const addButton = /* @__PURE__ */ React113.createElement(
6979
7610
  IconButton10,
6980
7611
  {
6981
- size: SIZE10,
7612
+ size: SIZE11,
6982
7613
  sx: {
6983
7614
  ml: "auto"
6984
7615
  },
6985
7616
  disabled: isButtonDisabled,
6986
7617
  onClick: addRepeaterItem,
6987
- "aria-label": __54("Add item", "elementor")
7618
+ "aria-label": __55("Add item", "elementor")
6988
7619
  },
6989
- /* @__PURE__ */ React107.createElement(PlusIcon4, { fontSize: SIZE10 })
7620
+ /* @__PURE__ */ React113.createElement(PlusIcon4, { fontSize: SIZE11 })
6990
7621
  );
6991
- return /* @__PURE__ */ React107.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React107.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React107.createElement(
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__ */ React107.createElement(Box26, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
7000
- ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React107.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
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__ */ React107.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React107.createElement(
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__ */ React107.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React107.createElement(itemSettings.Label, { value, index })),
7012
- startIcon: /* @__PURE__ */ React107.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React107.createElement(itemSettings.Icon, { value })),
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__ */ React107.createElement(
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 = __54("Duplicate", "elementor");
7055
- const toggleLabel = propDisabled ? __54("Show", "elementor") : __54("Hide", "elementor");
7056
- const removeLabel = __54("Remove", "elementor");
7057
- return /* @__PURE__ */ React107.createElement(React107.Fragment, null, /* @__PURE__ */ React107.createElement(
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": __54("Open item", "elementor"),
7064
- ...bindTrigger6(popoverState),
7694
+ "aria-label": __55("Open item", "elementor"),
7695
+ ...bindTrigger7(popoverState),
7065
7696
  startIcon,
7066
- actions: /* @__PURE__ */ React107.createElement(React107.Fragment, null, showDuplicate && /* @__PURE__ */ React107.createElement(Tooltip12, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React107.createElement(IconButton10, { size: SIZE10, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React107.createElement(CopyIcon2, { fontSize: SIZE10 }))), showToggle && /* @__PURE__ */ React107.createElement(Tooltip12, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React107.createElement(IconButton10, { size: SIZE10, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React107.createElement(EyeOffIcon2, { fontSize: SIZE10 }) : /* @__PURE__ */ React107.createElement(EyeIcon2, { fontSize: SIZE10 }))), actions?.(value), showRemove && /* @__PURE__ */ React107.createElement(Tooltip12, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React107.createElement(IconButton10, { size: SIZE10, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React107.createElement(XIcon4, { fontSize: SIZE10 }))))
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__ */ React107.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React107.createElement(Box26, null, children({ anchorEl: ref }))));
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 = usePopupState8({ variant: "popover" });
7073
- const popoverProps = bindPopover7(popoverState);
7074
- useEffect14(() => {
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 React109 from "react";
7090
- import { useMemo as useMemo15, useRef as useRef28, useState as useState19 } from "react";
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 Box27,
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 usePopupState9
7740
+ usePopupState as usePopupState11
7110
7741
  } from "@elementor/ui";
7111
7742
  import { useEditorState } from "@tiptap/react";
7112
- import { __ as __56 } from "@wordpress/i18n";
7743
+ import { __ as __57 } from "@wordpress/i18n";
7113
7744
 
7114
7745
  // src/components/url-popover.tsx
7115
- import * as React108 from "react";
7116
- import { useEffect as useEffect15, useRef as useRef27 } from "react";
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 bindPopover8, Popover as Popover7, Stack as Stack20, TextField as TextField9, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
7119
- import { __ as __55 } from "@wordpress/i18n";
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 = useRef27(null);
7130
- useEffect15(() => {
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__ */ React108.createElement(
7140
- Popover7,
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
- ...bindPopover8(popupState),
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__ */ React108.createElement(Stack20, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React108.createElement(
7151
- TextField9,
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: __55("Type a URL", "elementor"),
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__ */ React108.createElement(Tooltip13, { title: __55("Open in a new tab", "elementor") }, /* @__PURE__ */ React108.createElement(
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": __55("Open in a new tab", "elementor"),
7801
+ "aria-label": __56("Open in a new tab", "elementor"),
7171
7802
  sx: { borderRadius: "8px" }
7172
7803
  },
7173
- /* @__PURE__ */ React108.createElement(ExternalLinkIcon, { fontSize: "tiny" })
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 = useRef28(null);
7183
- const linkPopupState = usePopupState9({ variant: "popover" });
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 = useMemo15(() => {
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
- React109.useEffect(() => {
7857
+ React115.useEffect(() => {
7227
7858
  editor?.commands?.focus();
7228
7859
  }, [editor]);
7229
- return /* @__PURE__ */ React109.createElement(
7230
- Box27,
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__ */ React109.createElement(Tooltip14, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React109.createElement(IconButton11, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
7247
- /* @__PURE__ */ React109.createElement(
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__ */ React109.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React109.createElement(
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__ */ React109.createElement(
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: __56("Clear", "elementor"),
7311
- icon: /* @__PURE__ */ React109.createElement(MinusIcon2, { fontSize: "tiny" }),
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: __56("Bold", "elementor"),
7319
- icon: /* @__PURE__ */ React109.createElement(BoldIcon, { fontSize: "tiny" }),
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: __56("Italic", "elementor"),
7327
- icon: /* @__PURE__ */ React109.createElement(ItalicIcon, { fontSize: "tiny" }),
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: __56("Underline", "elementor"),
7335
- icon: /* @__PURE__ */ React109.createElement(UnderlineIcon, { fontSize: "tiny" }),
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: __56("Strikethrough", "elementor"),
7343
- icon: /* @__PURE__ */ React109.createElement(StrikethroughIcon, { fontSize: "tiny" }),
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: __56("Superscript", "elementor"),
7351
- icon: /* @__PURE__ */ React109.createElement(SuperscriptIcon, { fontSize: "tiny" }),
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: __56("Subscript", "elementor"),
7359
- icon: /* @__PURE__ */ React109.createElement(SubscriptIcon, { fontSize: "tiny" }),
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: __56("Link", "elementor"),
7367
- icon: /* @__PURE__ */ React109.createElement(LinkIcon3, { fontSize: "tiny" }),
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 React112 from "react";
7377
- import { InputAdornment as InputAdornment5 } from "@elementor/ui";
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 DEFAULT_SIZE2 = "";
7382
- var useSizeValue = (externalValue, onChange, defaultUnit) => {
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: DEFAULT_SIZE2, unit: defaultUnit ?? DEFAULT_UNIT2 })
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 React110 from "react";
7420
- import { useId as useId3 } from "react";
7421
- import { MenuListItem as MenuListItem7 } from "@elementor/editor-ui";
7422
- import { bindMenu as bindMenu2, bindTrigger as bindTrigger7, Button as Button6, Menu as Menu3, styled as styled10, usePopupState as usePopupState10 } from "@elementor/ui";
7423
- var menuItemContentStyles = {
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 = usePopupState10({
8060
+ const popupState = usePopupState12({
7430
8061
  variant: "popover",
7431
- popupId: useId3()
8062
+ popupId: useId4()
7432
8063
  });
7433
8064
  const handleMenuItemClick = (index) => {
7434
8065
  onClick(options[index]);
7435
8066
  popupState.close();
7436
8067
  };
7437
- return /* @__PURE__ */ React110.createElement(React110.Fragment, null, /* @__PURE__ */ React110.createElement(StyledButton2, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger7(popupState) }, value), /* @__PURE__ */ React110.createElement(Menu3, { MenuListProps: { dense: true }, ...bindMenu2(popupState) }, options.map((option, index) => /* @__PURE__ */ React110.createElement(
7438
- MenuListItem7,
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
- ...menuItemContentStyles,
8076
+ ...menuItemContentStyles2,
7446
8077
  lineHeight: "1"
7447
8078
  }
7448
8079
  },
7449
8080
  menuItemTextProps: {
7450
- sx: menuItemContentStyles
8081
+ sx: menuItemContentStyles2
7451
8082
  }
7452
8083
  },
7453
8084
  option.toUpperCase()
7454
8085
  ))));
7455
8086
  };
7456
- var StyledButton2 = styled10(Button6, {
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 React111 from "react";
7467
- import { forwardRef as forwardRef12 } from "react";
7468
- var UnstableSizeInput = forwardRef12(
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__ */ React111.createElement(
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: getCursorStyle(InputProps?.readOnly ?? false)
8116
+ sx: getCursorStyle2(InputProps?.readOnly ?? false)
7486
8117
  }
7487
8118
  );
7488
8119
  }
7489
8120
  );
7490
- var getCursorStyle = (readOnly) => ({
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 } = useSizeValue(value, onChange, defaultUnit);
7505
- const shouldHighlightUnit = () => {
8135
+ const { size, unit, setSize, setUnit } = useSizeValue2(value, onChange, defaultUnit);
8136
+ const shouldHighlightUnit2 = () => {
7506
8137
  return hasValue(size);
7507
8138
  };
7508
- return /* @__PURE__ */ React112.createElement(
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__ */ React112.createElement(InputAdornment5, { position: "start" }, startIcon),
7518
- endAdornment: /* @__PURE__ */ React112.createElement(InputAdornment5, { position: "end" }, /* @__PURE__ */ React112.createElement(
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: shouldHighlightUnit()
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 useMemo16 } from "react";
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 useMemo16(() => {
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,