@elementor/editor-controls 0.36.0 → 1.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/CHANGELOG.md +17 -0
- package/dist/index.d.mts +14 -9
- package/dist/index.d.ts +14 -9
- package/dist/index.js +750 -534
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +688 -464
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -3
- package/src/bound-prop-context/use-bound-prop.ts +4 -1
- package/src/components/popover-grid-container.tsx +7 -10
- package/src/components/size-control/size-input.tsx +125 -0
- package/src/components/{text-field-inner-selection.tsx → size-control/text-field-inner-selection.tsx} +33 -16
- package/src/components/text-field-popover.tsx +47 -0
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx +11 -3
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx +7 -3
- package/src/controls/box-shadow-repeater-control.tsx +8 -6
- package/src/controls/equal-unequal-sizes-control.tsx +24 -14
- package/src/controls/gap-control.tsx +17 -6
- package/src/controls/linked-dimensions-control.tsx +62 -81
- package/src/controls/size-control.tsx +179 -149
- package/src/controls/stroke-control.tsx +9 -6
- package/src/hooks/use-size-extended-options.ts +21 -0
- package/src/index.ts +1 -1
- package/src/utils/size-control.ts +10 -0
package/dist/index.js
CHANGED
|
@@ -512,12 +512,26 @@ var TextAreaControl = createControl(({ placeholder }) => {
|
|
|
512
512
|
});
|
|
513
513
|
|
|
514
514
|
// src/controls/size-control.tsx
|
|
515
|
-
var
|
|
516
|
-
var
|
|
515
|
+
var React16 = __toESM(require("react"));
|
|
516
|
+
var import_react10 = require("react");
|
|
517
517
|
var import_editor_props6 = require("@elementor/editor-props");
|
|
518
|
+
var import_editor_responsive = require("@elementor/editor-responsive");
|
|
519
|
+
var import_ui12 = require("@elementor/ui");
|
|
520
|
+
|
|
521
|
+
// src/components/size-control/size-input.tsx
|
|
522
|
+
var React14 = __toESM(require("react"));
|
|
523
|
+
var import_react7 = require("react");
|
|
524
|
+
var import_icons2 = require("@elementor/icons");
|
|
518
525
|
var import_ui10 = require("@elementor/ui");
|
|
519
526
|
|
|
520
|
-
// src/
|
|
527
|
+
// src/utils/size-control.ts
|
|
528
|
+
var defaultUnits = ["px", "%", "em", "rem", "vw", "vh"];
|
|
529
|
+
var defaultExtendedOptions = ["auto", "custom"];
|
|
530
|
+
function isUnitExtendedOption(unit) {
|
|
531
|
+
return defaultExtendedOptions.includes(unit);
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
// src/components/size-control/text-field-inner-selection.tsx
|
|
521
535
|
var React13 = __toESM(require("react"));
|
|
522
536
|
var import_react6 = require("react");
|
|
523
537
|
var import_editor_ui2 = require("@elementor/editor-ui");
|
|
@@ -531,36 +545,36 @@ var TextFieldInnerSelection = (0, import_react6.forwardRef)(
|
|
|
531
545
|
onBlur,
|
|
532
546
|
onKeyDown,
|
|
533
547
|
onKeyUp,
|
|
534
|
-
|
|
535
|
-
|
|
548
|
+
shouldBlockInput = false,
|
|
549
|
+
inputProps,
|
|
536
550
|
disabled
|
|
537
551
|
}, ref) => {
|
|
538
552
|
return /* @__PURE__ */ React13.createElement(
|
|
539
553
|
import_ui9.TextField,
|
|
540
554
|
{
|
|
541
555
|
ref,
|
|
556
|
+
sx: { input: { cursor: shouldBlockInput ? "default !important" : void 0 } },
|
|
542
557
|
size: "tiny",
|
|
543
558
|
fullWidth: true,
|
|
544
|
-
type,
|
|
559
|
+
type: shouldBlockInput ? void 0 : type,
|
|
545
560
|
value,
|
|
561
|
+
onChange: shouldBlockInput ? void 0 : onChange,
|
|
562
|
+
onKeyDown: shouldBlockInput ? void 0 : onKeyDown,
|
|
563
|
+
onKeyUp: shouldBlockInput ? void 0 : onKeyUp,
|
|
546
564
|
disabled,
|
|
547
|
-
onChange,
|
|
548
|
-
onKeyDown,
|
|
549
|
-
onKeyUp,
|
|
550
565
|
onBlur,
|
|
551
566
|
placeholder,
|
|
552
|
-
InputProps:
|
|
553
|
-
endAdornment,
|
|
554
|
-
startAdornment
|
|
555
|
-
}
|
|
567
|
+
InputProps: inputProps
|
|
556
568
|
}
|
|
557
569
|
);
|
|
558
570
|
}
|
|
559
571
|
);
|
|
560
572
|
var SelectionEndAdornment = ({
|
|
561
573
|
options,
|
|
574
|
+
alternativeOptionLabels = {},
|
|
562
575
|
onClick,
|
|
563
576
|
value,
|
|
577
|
+
menuItemsAttributes = {},
|
|
564
578
|
disabled
|
|
565
579
|
}) => {
|
|
566
580
|
const popupState = (0, import_ui9.usePopupState)({
|
|
@@ -580,12 +594,161 @@ var SelectionEndAdornment = ({
|
|
|
580
594
|
sx: { font: "inherit", minWidth: "initial", textTransform: "uppercase" },
|
|
581
595
|
...(0, import_ui9.bindTrigger)(popupState)
|
|
582
596
|
},
|
|
583
|
-
value
|
|
584
|
-
), /* @__PURE__ */ React13.createElement(import_ui9.Menu, { MenuListProps: { dense: true }, ...(0, import_ui9.bindMenu)(popupState) }, options.map((option, index) => /* @__PURE__ */ React13.createElement(
|
|
597
|
+
alternativeOptionLabels[value] ?? value
|
|
598
|
+
), /* @__PURE__ */ React13.createElement(import_ui9.Menu, { MenuListProps: { dense: true }, ...(0, import_ui9.bindMenu)(popupState) }, options.map((option, index) => /* @__PURE__ */ React13.createElement(
|
|
599
|
+
import_editor_ui2.MenuListItem,
|
|
600
|
+
{
|
|
601
|
+
key: option,
|
|
602
|
+
onClick: () => handleMenuItemClick(index),
|
|
603
|
+
...menuItemsAttributes?.[option]
|
|
604
|
+
},
|
|
605
|
+
alternativeOptionLabels[option] ?? option.toUpperCase()
|
|
606
|
+
))));
|
|
585
607
|
};
|
|
586
608
|
|
|
609
|
+
// src/components/size-control/size-input.tsx
|
|
610
|
+
var RESTRICTED_INPUT_KEYS = ["e", "E", "+", "-"];
|
|
611
|
+
var SizeInput = ({
|
|
612
|
+
units: units2,
|
|
613
|
+
handleUnitChange,
|
|
614
|
+
handleSizeChange,
|
|
615
|
+
placeholder,
|
|
616
|
+
startIcon,
|
|
617
|
+
onBlur,
|
|
618
|
+
onFocus,
|
|
619
|
+
onClick,
|
|
620
|
+
size,
|
|
621
|
+
unit,
|
|
622
|
+
popupState,
|
|
623
|
+
disabled
|
|
624
|
+
}) => {
|
|
625
|
+
const unitInputBufferRef = (0, import_react7.useRef)("");
|
|
626
|
+
const inputType = isUnitExtendedOption(unit) ? "text" : "number";
|
|
627
|
+
const inputValue = !isUnitExtendedOption(unit) && Number.isNaN(size) ? "" : size ?? "";
|
|
628
|
+
const handleKeyUp = (event) => {
|
|
629
|
+
const { key } = event;
|
|
630
|
+
if (!/^[a-zA-Z%]$/.test(key)) {
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
633
|
+
event.preventDefault();
|
|
634
|
+
const newChar = key.toLowerCase();
|
|
635
|
+
const updatedBuffer = (unitInputBufferRef.current + newChar).slice(-3);
|
|
636
|
+
unitInputBufferRef.current = updatedBuffer;
|
|
637
|
+
const matchedUnit = units2.find((u) => u.includes(updatedBuffer)) || units2.find((u) => u.startsWith(newChar)) || units2.find((u) => u.includes(newChar));
|
|
638
|
+
if (matchedUnit) {
|
|
639
|
+
handleUnitChange(matchedUnit);
|
|
640
|
+
}
|
|
641
|
+
};
|
|
642
|
+
const popupAttributes = {
|
|
643
|
+
"aria-controls": popupState.isOpen ? popupState.popupId : void 0,
|
|
644
|
+
"aria-haspopup": true
|
|
645
|
+
};
|
|
646
|
+
const inputProps = {
|
|
647
|
+
...popupAttributes,
|
|
648
|
+
autoComplete: "off",
|
|
649
|
+
onClick,
|
|
650
|
+
onFocus,
|
|
651
|
+
startAdornment: startIcon ? /* @__PURE__ */ React14.createElement(import_ui10.InputAdornment, { position: "start", disabled }, startIcon) : void 0,
|
|
652
|
+
endAdornment: /* @__PURE__ */ React14.createElement(
|
|
653
|
+
SelectionEndAdornment,
|
|
654
|
+
{
|
|
655
|
+
disabled,
|
|
656
|
+
options: units2,
|
|
657
|
+
onClick: handleUnitChange,
|
|
658
|
+
value: unit,
|
|
659
|
+
alternativeOptionLabels: {
|
|
660
|
+
custom: /* @__PURE__ */ React14.createElement(import_icons2.PencilIcon, { fontSize: "small" })
|
|
661
|
+
},
|
|
662
|
+
menuItemsAttributes: units2.includes("custom") ? {
|
|
663
|
+
custom: popupAttributes
|
|
664
|
+
} : void 0
|
|
665
|
+
}
|
|
666
|
+
)
|
|
667
|
+
};
|
|
668
|
+
return /* @__PURE__ */ React14.createElement(ControlActions, null, /* @__PURE__ */ React14.createElement(import_ui10.Box, null, /* @__PURE__ */ React14.createElement(
|
|
669
|
+
TextFieldInnerSelection,
|
|
670
|
+
{
|
|
671
|
+
disabled,
|
|
672
|
+
placeholder,
|
|
673
|
+
type: inputType,
|
|
674
|
+
value: inputValue,
|
|
675
|
+
onChange: handleSizeChange,
|
|
676
|
+
onKeyDown: (event) => {
|
|
677
|
+
if (RESTRICTED_INPUT_KEYS.includes(event.key)) {
|
|
678
|
+
event.preventDefault();
|
|
679
|
+
}
|
|
680
|
+
},
|
|
681
|
+
onKeyUp: handleKeyUp,
|
|
682
|
+
onBlur,
|
|
683
|
+
shouldBlockInput: isUnitExtendedOption(unit),
|
|
684
|
+
inputProps
|
|
685
|
+
}
|
|
686
|
+
)));
|
|
687
|
+
};
|
|
688
|
+
|
|
689
|
+
// src/components/text-field-popover.tsx
|
|
690
|
+
var React15 = __toESM(require("react"));
|
|
691
|
+
var import_ui11 = require("@elementor/ui");
|
|
692
|
+
var TextFieldPopover = (props) => {
|
|
693
|
+
const { popupState, restoreValue, anchorRef, value, onChange } = props;
|
|
694
|
+
return /* @__PURE__ */ React15.createElement(
|
|
695
|
+
import_ui11.Popover,
|
|
696
|
+
{
|
|
697
|
+
disablePortal: true,
|
|
698
|
+
...(0, import_ui11.bindPopover)(popupState),
|
|
699
|
+
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
700
|
+
transformOrigin: { vertical: "top", horizontal: "center" },
|
|
701
|
+
onClose: () => {
|
|
702
|
+
restoreValue();
|
|
703
|
+
popupState.close();
|
|
704
|
+
}
|
|
705
|
+
},
|
|
706
|
+
/* @__PURE__ */ React15.createElement(
|
|
707
|
+
import_ui11.Paper,
|
|
708
|
+
{
|
|
709
|
+
sx: {
|
|
710
|
+
width: anchorRef.current.offsetWidth + "px",
|
|
711
|
+
borderRadius: 2,
|
|
712
|
+
p: 1.5
|
|
713
|
+
}
|
|
714
|
+
},
|
|
715
|
+
/* @__PURE__ */ React15.createElement(
|
|
716
|
+
import_ui11.TextField,
|
|
717
|
+
{
|
|
718
|
+
value,
|
|
719
|
+
onChange,
|
|
720
|
+
size: "tiny",
|
|
721
|
+
type: "text",
|
|
722
|
+
fullWidth: true,
|
|
723
|
+
inputProps: {
|
|
724
|
+
autoFocus: true
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
)
|
|
728
|
+
)
|
|
729
|
+
);
|
|
730
|
+
};
|
|
731
|
+
|
|
732
|
+
// src/hooks/use-size-extended-options.ts
|
|
733
|
+
var import_react8 = require("react");
|
|
734
|
+
var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
735
|
+
var EXPERIMENT_ID = "e_v_3_30";
|
|
736
|
+
function useSizeExtendedOptions(options, disableCustom) {
|
|
737
|
+
return (0, import_react8.useMemo)(() => {
|
|
738
|
+
const isVersion330Active = (0, import_editor_v1_adapters.isExperimentActive)(EXPERIMENT_ID);
|
|
739
|
+
const shouldDisableCustom = !isVersion330Active || disableCustom;
|
|
740
|
+
const extendedOptions = [...options];
|
|
741
|
+
if (!shouldDisableCustom && !extendedOptions.includes("custom")) {
|
|
742
|
+
extendedOptions.push("custom");
|
|
743
|
+
} else if (options.includes("custom")) {
|
|
744
|
+
extendedOptions.splice(extendedOptions.indexOf("custom"), 1);
|
|
745
|
+
}
|
|
746
|
+
return extendedOptions;
|
|
747
|
+
}, [options, disableCustom]);
|
|
748
|
+
}
|
|
749
|
+
|
|
587
750
|
// src/hooks/use-sync-external-state.tsx
|
|
588
|
-
var
|
|
751
|
+
var import_react9 = require("react");
|
|
589
752
|
var useSyncExternalState = ({
|
|
590
753
|
external,
|
|
591
754
|
setExternal,
|
|
@@ -604,8 +767,8 @@ var useSyncExternalState = ({
|
|
|
604
767
|
}
|
|
605
768
|
return externalValue;
|
|
606
769
|
}
|
|
607
|
-
const [internal, setInternal] = (0,
|
|
608
|
-
(0,
|
|
770
|
+
const [internal, setInternal] = (0, import_react9.useState)(toInternal(external, null));
|
|
771
|
+
(0, import_react9.useEffect)(() => {
|
|
609
772
|
setInternal((prevInternal) => toInternal(external, prevInternal));
|
|
610
773
|
}, [external]);
|
|
611
774
|
const setInternalValue = (setter) => {
|
|
@@ -618,149 +781,173 @@ var useSyncExternalState = ({
|
|
|
618
781
|
};
|
|
619
782
|
|
|
620
783
|
// src/controls/size-control.tsx
|
|
621
|
-
var
|
|
622
|
-
var
|
|
623
|
-
var
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
unit
|
|
637
|
-
}));
|
|
638
|
-
};
|
|
639
|
-
const handleSizeChange = (event) => {
|
|
640
|
-
const { value: size } = event.target;
|
|
641
|
-
setState((prev) => ({
|
|
642
|
-
...prev,
|
|
643
|
-
size: size || size === "0" ? parseFloat(size) : defaultSize
|
|
644
|
-
}));
|
|
645
|
-
};
|
|
646
|
-
const Input = extendedValues?.length ? ExtendedSizeInput : SizeInput;
|
|
647
|
-
return /* @__PURE__ */ React14.createElement(
|
|
648
|
-
Input,
|
|
649
|
-
{
|
|
650
|
-
disabled,
|
|
651
|
-
size: state.size,
|
|
652
|
-
unit: state.unit,
|
|
653
|
-
placeholder,
|
|
654
|
-
startIcon,
|
|
655
|
-
units: units2,
|
|
656
|
-
extendedValues,
|
|
657
|
-
handleSizeChange,
|
|
658
|
-
handleUnitChange,
|
|
659
|
-
onBlur: restoreValue
|
|
784
|
+
var DEFAULT_UNIT = "px";
|
|
785
|
+
var DEFAULT_SIZE = NaN;
|
|
786
|
+
var SizeControl = createControl((props) => {
|
|
787
|
+
const { units: units2 = [...defaultUnits], placeholder, startIcon, anchorRef } = props;
|
|
788
|
+
const { value: sizeValue, setValue: setSizeValue, disabled, restoreValue } = useBoundProp(import_editor_props6.sizePropTypeUtil);
|
|
789
|
+
const [internalState, setInternalState] = (0, import_react10.useState)(createStateFromSizeProp(sizeValue));
|
|
790
|
+
const activeBreakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
|
|
791
|
+
const extendedOptions = useSizeExtendedOptions(props.extendedOptions || [], props.disableCustom ?? false);
|
|
792
|
+
const popupState = (0, import_ui12.usePopupState)({ variant: "popover" });
|
|
793
|
+
const [state, setState] = useSyncExternalState({
|
|
794
|
+
external: internalState,
|
|
795
|
+
setExternal: (newState) => setSizeValue(extractValueFromState(newState)),
|
|
796
|
+
persistWhen: (newState) => {
|
|
797
|
+
if (!newState?.unit) {
|
|
798
|
+
return false;
|
|
660
799
|
}
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
800
|
+
if (isUnitExtendedOption(newState.unit)) {
|
|
801
|
+
return newState.unit === "auto" ? true : !!newState.custom;
|
|
802
|
+
}
|
|
803
|
+
return !!newState?.numeric || newState?.numeric === 0;
|
|
804
|
+
},
|
|
805
|
+
fallback: (newState) => ({
|
|
806
|
+
unit: newState?.unit ?? DEFAULT_UNIT,
|
|
807
|
+
numeric: newState?.numeric ?? DEFAULT_SIZE,
|
|
808
|
+
custom: newState?.custom ?? ""
|
|
809
|
+
})
|
|
810
|
+
});
|
|
811
|
+
const { size: controlSize = DEFAULT_SIZE, unit: controlUnit = DEFAULT_UNIT } = extractValueFromState(state) || {};
|
|
668
812
|
const handleUnitChange = (newUnit) => {
|
|
669
|
-
if (
|
|
670
|
-
|
|
671
|
-
} else {
|
|
672
|
-
props.handleUnitChange(newUnit);
|
|
813
|
+
if (newUnit === "custom") {
|
|
814
|
+
popupState.open(anchorRef?.current);
|
|
673
815
|
}
|
|
816
|
+
setState((prev) => ({ ...prev, unit: newUnit }));
|
|
674
817
|
};
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
{
|
|
678
|
-
...
|
|
679
|
-
units: [...props.units, ...extendedValues],
|
|
680
|
-
handleUnitChange,
|
|
681
|
-
unit
|
|
682
|
-
}
|
|
683
|
-
);
|
|
684
|
-
};
|
|
685
|
-
var RESTRICTED_INPUT_KEYS = ["e", "E", "+", "-"];
|
|
686
|
-
var SizeInput = ({
|
|
687
|
-
units: units2,
|
|
688
|
-
handleUnitChange,
|
|
689
|
-
handleSizeChange,
|
|
690
|
-
placeholder,
|
|
691
|
-
startIcon,
|
|
692
|
-
onBlur,
|
|
693
|
-
size,
|
|
694
|
-
unit,
|
|
695
|
-
disabled
|
|
696
|
-
}) => {
|
|
697
|
-
const unitInputBufferRef = (0, import_react8.useRef)("");
|
|
698
|
-
const handleKeyUp = (event) => {
|
|
699
|
-
const { key } = event;
|
|
700
|
-
if (!/^[a-zA-Z%]$/.test(key)) {
|
|
818
|
+
const handleSizeChange = (event) => {
|
|
819
|
+
const { value: size } = event.target;
|
|
820
|
+
if (controlUnit === "auto") {
|
|
821
|
+
setState((prev) => ({ ...prev, unit: controlUnit }));
|
|
701
822
|
return;
|
|
702
823
|
}
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
824
|
+
setState((prev) => ({
|
|
825
|
+
...prev,
|
|
826
|
+
[controlUnit === "custom" ? "custom" : "numeric"]: formatSize(size, controlUnit),
|
|
827
|
+
unit: controlUnit
|
|
828
|
+
}));
|
|
829
|
+
};
|
|
830
|
+
const onInputFocus = (event) => {
|
|
831
|
+
if (isUnitExtendedOption(state.unit)) {
|
|
832
|
+
event.target?.blur();
|
|
710
833
|
}
|
|
711
834
|
};
|
|
712
|
-
|
|
713
|
-
|
|
835
|
+
const onInputClick = (event) => {
|
|
836
|
+
if (event.target.closest("input") && "custom" === state.unit) {
|
|
837
|
+
popupState.open(anchorRef?.current);
|
|
838
|
+
}
|
|
839
|
+
};
|
|
840
|
+
(0, import_react10.useEffect)(() => {
|
|
841
|
+
const newState = createStateFromSizeProp(sizeValue);
|
|
842
|
+
const currentUnit = isUnitExtendedOption(state.unit) ? "custom" : "numeric";
|
|
843
|
+
const mergedStates = { ...state, [currentUnit]: newState[currentUnit] };
|
|
844
|
+
if (mergedStates.unit !== "auto" && areStatesEqual(state, mergedStates)) {
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
847
|
+
if (state.unit === newState.unit) {
|
|
848
|
+
setInternalState(mergedStates);
|
|
849
|
+
return;
|
|
850
|
+
}
|
|
851
|
+
setState(newState);
|
|
852
|
+
}, [sizeValue]);
|
|
853
|
+
(0, import_react10.useEffect)(() => {
|
|
854
|
+
const newState = createStateFromSizeProp(sizeValue);
|
|
855
|
+
if (activeBreakpoint && !areStatesEqual(newState, state)) {
|
|
856
|
+
setState(newState);
|
|
857
|
+
}
|
|
858
|
+
}, [activeBreakpoint]);
|
|
859
|
+
return /* @__PURE__ */ React16.createElement(React16.Fragment, null, /* @__PURE__ */ React16.createElement(
|
|
860
|
+
SizeInput,
|
|
714
861
|
{
|
|
715
862
|
disabled,
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
disabled,
|
|
720
|
-
options: units2,
|
|
721
|
-
onClick: handleUnitChange,
|
|
722
|
-
value: unit ?? defaultUnit
|
|
723
|
-
}
|
|
724
|
-
),
|
|
863
|
+
size: controlSize,
|
|
864
|
+
unit: controlUnit,
|
|
865
|
+
units: [...units2, ...extendedOptions || []],
|
|
725
866
|
placeholder,
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
event.preventDefault();
|
|
734
|
-
}
|
|
735
|
-
},
|
|
736
|
-
onKeyUp: handleKeyUp
|
|
867
|
+
startIcon,
|
|
868
|
+
handleSizeChange,
|
|
869
|
+
handleUnitChange,
|
|
870
|
+
onBlur: restoreValue,
|
|
871
|
+
onFocus: onInputFocus,
|
|
872
|
+
onClick: onInputClick,
|
|
873
|
+
popupState
|
|
737
874
|
}
|
|
738
|
-
)
|
|
739
|
-
|
|
875
|
+
), anchorRef?.current && /* @__PURE__ */ React16.createElement(
|
|
876
|
+
TextFieldPopover,
|
|
877
|
+
{
|
|
878
|
+
popupState,
|
|
879
|
+
anchorRef,
|
|
880
|
+
restoreValue,
|
|
881
|
+
value: controlSize,
|
|
882
|
+
onChange: handleSizeChange
|
|
883
|
+
}
|
|
884
|
+
));
|
|
885
|
+
});
|
|
886
|
+
function formatSize(size, unit) {
|
|
887
|
+
if (isUnitExtendedOption(unit)) {
|
|
888
|
+
return unit === "auto" ? "" : String(size ?? "");
|
|
889
|
+
}
|
|
890
|
+
return size || size === 0 ? Number(size) : NaN;
|
|
891
|
+
}
|
|
892
|
+
function createStateFromSizeProp(sizeValue) {
|
|
893
|
+
const unit = sizeValue?.unit ?? DEFAULT_UNIT;
|
|
894
|
+
const size = sizeValue?.size ?? "";
|
|
895
|
+
return {
|
|
896
|
+
numeric: !isUnitExtendedOption(unit) && !isNaN(Number(size)) && (size || size === 0) ? Number(size) : DEFAULT_SIZE,
|
|
897
|
+
custom: unit === "custom" ? String(size) : "",
|
|
898
|
+
unit
|
|
899
|
+
};
|
|
900
|
+
}
|
|
901
|
+
function extractValueFromState(state) {
|
|
902
|
+
if (!state) {
|
|
903
|
+
return null;
|
|
904
|
+
}
|
|
905
|
+
if (!state?.unit) {
|
|
906
|
+
return { size: DEFAULT_SIZE, unit: DEFAULT_UNIT };
|
|
907
|
+
}
|
|
908
|
+
const { unit } = state;
|
|
909
|
+
if (unit === "auto") {
|
|
910
|
+
return { size: "", unit };
|
|
911
|
+
}
|
|
912
|
+
return {
|
|
913
|
+
size: state[unit === "custom" ? "custom" : "numeric"],
|
|
914
|
+
unit
|
|
915
|
+
};
|
|
916
|
+
}
|
|
917
|
+
function areStatesEqual(state1, state2) {
|
|
918
|
+
if (state1.unit !== state2.unit || state1.custom !== state2.custom) {
|
|
919
|
+
return false;
|
|
920
|
+
}
|
|
921
|
+
if (isUnitExtendedOption(state1.unit)) {
|
|
922
|
+
return state1.custom === state2.custom;
|
|
923
|
+
}
|
|
924
|
+
return state1.numeric === state2.numeric || isNaN(state1.numeric) && isNaN(state2.numeric);
|
|
925
|
+
}
|
|
740
926
|
|
|
741
927
|
// src/controls/stroke-control.tsx
|
|
742
|
-
var
|
|
928
|
+
var React19 = __toESM(require("react"));
|
|
929
|
+
var import_react11 = require("react");
|
|
743
930
|
var import_editor_props8 = require("@elementor/editor-props");
|
|
744
|
-
var
|
|
931
|
+
var import_ui15 = require("@elementor/ui");
|
|
745
932
|
var import_i18n3 = require("@wordpress/i18n");
|
|
746
933
|
|
|
747
934
|
// src/components/section-content.tsx
|
|
748
|
-
var
|
|
749
|
-
var
|
|
750
|
-
var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */
|
|
935
|
+
var React17 = __toESM(require("react"));
|
|
936
|
+
var import_ui13 = require("@elementor/ui");
|
|
937
|
+
var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React17.createElement(import_ui13.Stack, { gap, sx: { ...sx } }, children);
|
|
751
938
|
|
|
752
939
|
// src/controls/color-control.tsx
|
|
753
|
-
var
|
|
940
|
+
var React18 = __toESM(require("react"));
|
|
754
941
|
var import_editor_props7 = require("@elementor/editor-props");
|
|
755
|
-
var
|
|
942
|
+
var import_ui14 = require("@elementor/ui");
|
|
756
943
|
var ColorControl = createControl(
|
|
757
944
|
({ propTypeUtil = import_editor_props7.colorPropTypeUtil, anchorEl, slotProps = {}, ...props }) => {
|
|
758
945
|
const { value, setValue, disabled } = useBoundProp(propTypeUtil);
|
|
759
946
|
const handleChange = (selectedColor) => {
|
|
760
947
|
setValue(selectedColor || null);
|
|
761
948
|
};
|
|
762
|
-
return /* @__PURE__ */
|
|
763
|
-
|
|
949
|
+
return /* @__PURE__ */ React18.createElement(ControlActions, null, /* @__PURE__ */ React18.createElement(
|
|
950
|
+
import_ui14.UnstableColorField,
|
|
764
951
|
{
|
|
765
952
|
size: "tiny",
|
|
766
953
|
fullWidth: true,
|
|
@@ -791,48 +978,48 @@ var ColorControl = createControl(
|
|
|
791
978
|
var units = ["px", "em", "rem"];
|
|
792
979
|
var StrokeControl = createControl(() => {
|
|
793
980
|
const propContext = useBoundProp(import_editor_props8.strokePropTypeUtil);
|
|
794
|
-
|
|
981
|
+
const rowRef = (0, import_react11.useRef)();
|
|
982
|
+
return /* @__PURE__ */ React19.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React19.createElement(SectionContent, null, /* @__PURE__ */ React19.createElement(Control, { bind: "width", label: (0, import_i18n3.__)("Stroke width", "elementor"), ref: rowRef }, /* @__PURE__ */ React19.createElement(SizeControl, { units, anchorRef: rowRef })), /* @__PURE__ */ React19.createElement(Control, { bind: "color", label: (0, import_i18n3.__)("Stroke color", "elementor") }, /* @__PURE__ */ React19.createElement(ColorControl, null))));
|
|
795
983
|
});
|
|
796
|
-
var Control = ({ bind, label, children }) => /* @__PURE__ */
|
|
984
|
+
var Control = (0, import_react11.forwardRef)(({ bind, label, children }, ref) => /* @__PURE__ */ React19.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React19.createElement(import_ui15.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref }, /* @__PURE__ */ React19.createElement(import_ui15.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React19.createElement(import_ui15.Grid, { item: true, xs: 6 }, children))));
|
|
797
985
|
|
|
798
986
|
// src/controls/box-shadow-repeater-control.tsx
|
|
799
|
-
var
|
|
987
|
+
var React26 = __toESM(require("react"));
|
|
988
|
+
var import_react15 = require("react");
|
|
800
989
|
var import_editor_props9 = require("@elementor/editor-props");
|
|
801
|
-
var
|
|
990
|
+
var import_ui20 = require("@elementor/ui");
|
|
802
991
|
var import_i18n5 = require("@wordpress/i18n");
|
|
803
992
|
|
|
804
993
|
// src/components/popover-content.tsx
|
|
805
|
-
var
|
|
806
|
-
var
|
|
807
|
-
var PopoverContent = ({ alignItems, gap = 1.5, p, pt, pb, children }) => /* @__PURE__ */
|
|
994
|
+
var React20 = __toESM(require("react"));
|
|
995
|
+
var import_ui16 = require("@elementor/ui");
|
|
996
|
+
var PopoverContent = ({ alignItems, gap = 1.5, p, pt, pb, children }) => /* @__PURE__ */ React20.createElement(import_ui16.Stack, { alignItems, gap, p, pt, pb }, children);
|
|
808
997
|
|
|
809
998
|
// src/components/popover-grid-container.tsx
|
|
810
|
-
var
|
|
811
|
-
var
|
|
812
|
-
var
|
|
813
|
-
|
|
814
|
-
alignItems = "center",
|
|
815
|
-
|
|
816
|
-
children
|
|
817
|
-
}) => /* @__PURE__ */ React19.createElement(import_ui15.Grid, { container: true, gap, alignItems, flexWrap }, children);
|
|
999
|
+
var import_react12 = require("react");
|
|
1000
|
+
var React21 = __toESM(require("react"));
|
|
1001
|
+
var import_ui17 = require("@elementor/ui");
|
|
1002
|
+
var PopoverGridContainer = (0, import_react12.forwardRef)(
|
|
1003
|
+
({ gap = 1.5, alignItems = "center", flexWrap = "nowrap", children }, ref) => /* @__PURE__ */ React21.createElement(import_ui17.Grid, { container: true, gap, alignItems, flexWrap, ref }, children)
|
|
1004
|
+
);
|
|
818
1005
|
|
|
819
1006
|
// src/components/repeater.tsx
|
|
820
|
-
var
|
|
821
|
-
var
|
|
822
|
-
var
|
|
823
|
-
var
|
|
1007
|
+
var React25 = __toESM(require("react"));
|
|
1008
|
+
var import_react14 = require("react");
|
|
1009
|
+
var import_icons4 = require("@elementor/icons");
|
|
1010
|
+
var import_ui19 = require("@elementor/ui");
|
|
824
1011
|
var import_i18n4 = require("@wordpress/i18n");
|
|
825
1012
|
|
|
826
1013
|
// src/control-adornments/control-adornments.tsx
|
|
827
|
-
var
|
|
1014
|
+
var React23 = __toESM(require("react"));
|
|
828
1015
|
|
|
829
1016
|
// src/control-adornments/control-adornments-context.tsx
|
|
830
|
-
var
|
|
831
|
-
var
|
|
832
|
-
var Context2 = (0,
|
|
833
|
-
var ControlAdornmentsProvider = ({ children, items }) => /* @__PURE__ */
|
|
1017
|
+
var React22 = __toESM(require("react"));
|
|
1018
|
+
var import_react13 = require("react");
|
|
1019
|
+
var Context2 = (0, import_react13.createContext)(null);
|
|
1020
|
+
var ControlAdornmentsProvider = ({ children, items }) => /* @__PURE__ */ React22.createElement(Context2.Provider, { value: { items } }, children);
|
|
834
1021
|
var useControlAdornments = () => {
|
|
835
|
-
const context = (0,
|
|
1022
|
+
const context = (0, import_react13.useContext)(Context2);
|
|
836
1023
|
return context?.items ?? [];
|
|
837
1024
|
};
|
|
838
1025
|
|
|
@@ -842,7 +1029,7 @@ function ControlAdornments() {
|
|
|
842
1029
|
if (items?.length === 0) {
|
|
843
1030
|
return null;
|
|
844
1031
|
}
|
|
845
|
-
return /* @__PURE__ */
|
|
1032
|
+
return /* @__PURE__ */ React23.createElement(React23.Fragment, null, items.map(({ Adornment, id }) => /* @__PURE__ */ React23.createElement(Adornment, { key: id })));
|
|
846
1033
|
}
|
|
847
1034
|
|
|
848
1035
|
// src/locations.ts
|
|
@@ -851,15 +1038,15 @@ var { Slot: RepeaterItemIconSlot, inject: injectIntoRepeaterItemIcon } = (0, imp
|
|
|
851
1038
|
var { Slot: RepeaterItemLabelSlot, inject: injectIntoRepeaterItemLabel } = (0, import_locations.createReplaceableLocation)();
|
|
852
1039
|
|
|
853
1040
|
// src/components/sortable.tsx
|
|
854
|
-
var
|
|
855
|
-
var
|
|
856
|
-
var
|
|
1041
|
+
var React24 = __toESM(require("react"));
|
|
1042
|
+
var import_icons3 = require("@elementor/icons");
|
|
1043
|
+
var import_ui18 = require("@elementor/ui");
|
|
857
1044
|
var SortableProvider = (props) => {
|
|
858
|
-
return /* @__PURE__ */
|
|
1045
|
+
return /* @__PURE__ */ React24.createElement(import_ui18.List, { sx: { p: 0, my: -0.5, mx: 0 } }, /* @__PURE__ */ React24.createElement(import_ui18.UnstableSortableProvider, { restrictAxis: true, disableDragOverlay: false, variant: "static", ...props }));
|
|
859
1046
|
};
|
|
860
1047
|
var SortableItem = ({ id, children, disabled }) => {
|
|
861
|
-
return /* @__PURE__ */
|
|
862
|
-
|
|
1048
|
+
return /* @__PURE__ */ React24.createElement(
|
|
1049
|
+
import_ui18.UnstableSortableItem,
|
|
863
1050
|
{
|
|
864
1051
|
id,
|
|
865
1052
|
disabled,
|
|
@@ -871,12 +1058,12 @@ var SortableItem = ({ id, children, disabled }) => {
|
|
|
871
1058
|
showDropIndication,
|
|
872
1059
|
dropIndicationStyle
|
|
873
1060
|
}) => {
|
|
874
|
-
return /* @__PURE__ */
|
|
1061
|
+
return /* @__PURE__ */ React24.createElement(StyledListItem, { ...itemProps, style: itemStyle }, !disabled && /* @__PURE__ */ React24.createElement(SortableTrigger, { ...triggerProps, style: triggerStyle }), children, showDropIndication && /* @__PURE__ */ React24.createElement(StyledDivider, { style: dropIndicationStyle }));
|
|
875
1062
|
}
|
|
876
1063
|
}
|
|
877
1064
|
);
|
|
878
1065
|
};
|
|
879
|
-
var StyledListItem = (0,
|
|
1066
|
+
var StyledListItem = (0, import_ui18.styled)(import_ui18.ListItem)`
|
|
880
1067
|
position: relative;
|
|
881
1068
|
margin-inline: 0px;
|
|
882
1069
|
padding-inline: 0px;
|
|
@@ -905,8 +1092,8 @@ var StyledListItem = (0, import_ui16.styled)(import_ui16.ListItem)`
|
|
|
905
1092
|
}
|
|
906
1093
|
}
|
|
907
1094
|
`;
|
|
908
|
-
var SortableTrigger = (props) => /* @__PURE__ */
|
|
909
|
-
var StyledDivider = (0,
|
|
1095
|
+
var SortableTrigger = (props) => /* @__PURE__ */ React24.createElement("div", { ...props, role: "button", className: "class-item-sortable-trigger" }, /* @__PURE__ */ React24.createElement(import_icons3.GripVerticalIcon, { fontSize: "tiny" }));
|
|
1096
|
+
var StyledDivider = (0, import_ui18.styled)(import_ui18.Divider)`
|
|
910
1097
|
height: 0px;
|
|
911
1098
|
border: none;
|
|
912
1099
|
overflow: visible;
|
|
@@ -935,14 +1122,14 @@ var Repeater = ({
|
|
|
935
1122
|
values: repeaterValues = [],
|
|
936
1123
|
setValues: setRepeaterValues
|
|
937
1124
|
}) => {
|
|
938
|
-
const [openItem, setOpenItem] = (0,
|
|
1125
|
+
const [openItem, setOpenItem] = (0, import_react14.useState)(EMPTY_OPEN_ITEM);
|
|
939
1126
|
const [items, setItems] = useSyncExternalState({
|
|
940
1127
|
external: repeaterValues,
|
|
941
1128
|
// @ts-expect-error - as long as persistWhen => true, value will never be null
|
|
942
1129
|
setExternal: setRepeaterValues,
|
|
943
1130
|
persistWhen: () => true
|
|
944
1131
|
});
|
|
945
|
-
const [uniqueKeys, setUniqueKeys] = (0,
|
|
1132
|
+
const [uniqueKeys, setUniqueKeys] = (0, import_react14.useState)(items.map((_, index) => index));
|
|
946
1133
|
const generateNextKey = (source) => {
|
|
947
1134
|
return 1 + Math.max(0, ...source);
|
|
948
1135
|
};
|
|
@@ -999,8 +1186,8 @@ var Repeater = ({
|
|
|
999
1186
|
});
|
|
1000
1187
|
});
|
|
1001
1188
|
};
|
|
1002
|
-
return /* @__PURE__ */
|
|
1003
|
-
|
|
1189
|
+
return /* @__PURE__ */ React25.createElement(SectionContent, null, /* @__PURE__ */ React25.createElement(
|
|
1190
|
+
import_ui19.Stack,
|
|
1004
1191
|
{
|
|
1005
1192
|
direction: "row",
|
|
1006
1193
|
justifyContent: "start",
|
|
@@ -1008,10 +1195,10 @@ var Repeater = ({
|
|
|
1008
1195
|
gap: 1,
|
|
1009
1196
|
sx: { marginInlineEnd: -0.75 }
|
|
1010
1197
|
},
|
|
1011
|
-
/* @__PURE__ */
|
|
1012
|
-
/* @__PURE__ */
|
|
1013
|
-
/* @__PURE__ */
|
|
1014
|
-
|
|
1198
|
+
/* @__PURE__ */ React25.createElement(import_ui19.Typography, { component: "label", variant: "caption", color: "text.secondary" }, label),
|
|
1199
|
+
/* @__PURE__ */ React25.createElement(ControlAdornments, null),
|
|
1200
|
+
/* @__PURE__ */ React25.createElement(
|
|
1201
|
+
import_ui19.IconButton,
|
|
1015
1202
|
{
|
|
1016
1203
|
size: SIZE,
|
|
1017
1204
|
sx: { ml: "auto" },
|
|
@@ -1019,27 +1206,27 @@ var Repeater = ({
|
|
|
1019
1206
|
onClick: addRepeaterItem,
|
|
1020
1207
|
"aria-label": (0, import_i18n4.__)("Add item", "elementor")
|
|
1021
1208
|
},
|
|
1022
|
-
/* @__PURE__ */
|
|
1209
|
+
/* @__PURE__ */ React25.createElement(import_icons4.PlusIcon, { fontSize: SIZE })
|
|
1023
1210
|
)
|
|
1024
|
-
), 0 < uniqueKeys.length && /* @__PURE__ */
|
|
1211
|
+
), 0 < uniqueKeys.length && /* @__PURE__ */ React25.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key, index) => {
|
|
1025
1212
|
const value = items[index];
|
|
1026
1213
|
if (!value) {
|
|
1027
1214
|
return null;
|
|
1028
1215
|
}
|
|
1029
|
-
return /* @__PURE__ */
|
|
1216
|
+
return /* @__PURE__ */ React25.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled }, /* @__PURE__ */ React25.createElement(
|
|
1030
1217
|
RepeaterItem,
|
|
1031
1218
|
{
|
|
1032
1219
|
disabled,
|
|
1033
1220
|
propDisabled: value?.disabled,
|
|
1034
|
-
label: /* @__PURE__ */
|
|
1035
|
-
startIcon: /* @__PURE__ */
|
|
1221
|
+
label: /* @__PURE__ */ React25.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React25.createElement(itemSettings.Label, { value })),
|
|
1222
|
+
startIcon: /* @__PURE__ */ React25.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React25.createElement(itemSettings.Icon, { value })),
|
|
1036
1223
|
removeItem: () => removeRepeaterItem(index),
|
|
1037
1224
|
duplicateItem: () => duplicateRepeaterItem(index),
|
|
1038
1225
|
toggleDisableItem: () => toggleDisableRepeaterItem(index),
|
|
1039
1226
|
openOnMount: openOnAdd && openItem === key,
|
|
1040
1227
|
onOpen: () => setOpenItem(EMPTY_OPEN_ITEM)
|
|
1041
1228
|
},
|
|
1042
|
-
(props) => /* @__PURE__ */
|
|
1229
|
+
(props) => /* @__PURE__ */ React25.createElement(itemSettings.Content, { ...props, value, bind: String(index) })
|
|
1043
1230
|
));
|
|
1044
1231
|
})));
|
|
1045
1232
|
};
|
|
@@ -1055,13 +1242,13 @@ var RepeaterItem = ({
|
|
|
1055
1242
|
onOpen,
|
|
1056
1243
|
disabled
|
|
1057
1244
|
}) => {
|
|
1058
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
1245
|
+
const [anchorEl, setAnchorEl] = (0, import_react14.useState)(null);
|
|
1059
1246
|
const { popoverState, popoverProps, ref, setRef } = usePopover(openOnMount, onOpen);
|
|
1060
1247
|
const duplicateLabel = (0, import_i18n4.__)("Duplicate", "elementor");
|
|
1061
1248
|
const toggleLabel = propDisabled ? (0, import_i18n4.__)("Show", "elementor") : (0, import_i18n4.__)("Hide", "elementor");
|
|
1062
1249
|
const removeLabel = (0, import_i18n4.__)("Remove", "elementor");
|
|
1063
|
-
return /* @__PURE__ */
|
|
1064
|
-
|
|
1250
|
+
return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(
|
|
1251
|
+
import_ui19.UnstableTag,
|
|
1065
1252
|
{
|
|
1066
1253
|
disabled,
|
|
1067
1254
|
label,
|
|
@@ -1070,12 +1257,12 @@ var RepeaterItem = ({
|
|
|
1070
1257
|
ref: setRef,
|
|
1071
1258
|
variant: "outlined",
|
|
1072
1259
|
"aria-label": (0, import_i18n4.__)("Open item", "elementor"),
|
|
1073
|
-
...(0,
|
|
1260
|
+
...(0, import_ui19.bindTrigger)(popoverState),
|
|
1074
1261
|
startIcon,
|
|
1075
|
-
actions: /* @__PURE__ */
|
|
1262
|
+
actions: /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(import_ui19.Tooltip, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React25.createElement(import_ui19.IconButton, { size: SIZE, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React25.createElement(import_icons4.CopyIcon, { fontSize: SIZE }))), /* @__PURE__ */ React25.createElement(import_ui19.Tooltip, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React25.createElement(import_ui19.IconButton, { size: SIZE, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React25.createElement(import_icons4.EyeOffIcon, { fontSize: SIZE }) : /* @__PURE__ */ React25.createElement(import_icons4.EyeIcon, { fontSize: SIZE }))), /* @__PURE__ */ React25.createElement(import_ui19.Tooltip, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React25.createElement(import_ui19.IconButton, { size: SIZE, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React25.createElement(import_icons4.XIcon, { fontSize: SIZE }))))
|
|
1076
1263
|
}
|
|
1077
|
-
), /* @__PURE__ */
|
|
1078
|
-
|
|
1264
|
+
), /* @__PURE__ */ React25.createElement(
|
|
1265
|
+
import_ui19.Popover,
|
|
1079
1266
|
{
|
|
1080
1267
|
disablePortal: true,
|
|
1081
1268
|
slotProps: {
|
|
@@ -1088,14 +1275,14 @@ var RepeaterItem = ({
|
|
|
1088
1275
|
...popoverProps,
|
|
1089
1276
|
anchorEl: ref
|
|
1090
1277
|
},
|
|
1091
|
-
/* @__PURE__ */
|
|
1278
|
+
/* @__PURE__ */ React25.createElement(import_ui19.Box, null, children({ anchorEl }))
|
|
1092
1279
|
));
|
|
1093
1280
|
};
|
|
1094
1281
|
var usePopover = (openOnMount, onOpen) => {
|
|
1095
|
-
const [ref, setRef] = (0,
|
|
1096
|
-
const popoverState = (0,
|
|
1097
|
-
const popoverProps = (0,
|
|
1098
|
-
(0,
|
|
1282
|
+
const [ref, setRef] = (0, import_react14.useState)(null);
|
|
1283
|
+
const popoverState = (0, import_ui19.usePopupState)({ variant: "popover" });
|
|
1284
|
+
const popoverProps = (0, import_ui19.bindPopover)(popoverState);
|
|
1285
|
+
(0, import_react14.useEffect)(() => {
|
|
1099
1286
|
if (openOnMount && ref) {
|
|
1100
1287
|
popoverState.open(ref);
|
|
1101
1288
|
onOpen?.();
|
|
@@ -1112,7 +1299,7 @@ var usePopover = (openOnMount, onOpen) => {
|
|
|
1112
1299
|
// src/controls/box-shadow-repeater-control.tsx
|
|
1113
1300
|
var BoxShadowRepeaterControl = createControl(() => {
|
|
1114
1301
|
const { propType, value, setValue, disabled } = useBoundProp(import_editor_props9.boxShadowPropTypeUtil);
|
|
1115
|
-
return /* @__PURE__ */
|
|
1302
|
+
return /* @__PURE__ */ React26.createElement(PropProvider, { propType, value, setValue, disabled }, /* @__PURE__ */ React26.createElement(
|
|
1116
1303
|
Repeater,
|
|
1117
1304
|
{
|
|
1118
1305
|
openOnAdd: true,
|
|
@@ -1129,13 +1316,14 @@ var BoxShadowRepeaterControl = createControl(() => {
|
|
|
1129
1316
|
}
|
|
1130
1317
|
));
|
|
1131
1318
|
});
|
|
1132
|
-
var ItemIcon = ({ value }) => /* @__PURE__ */
|
|
1319
|
+
var ItemIcon = ({ value }) => /* @__PURE__ */ React26.createElement(import_ui20.UnstableColorIndicator, { size: "inherit", component: "span", value: value.value.color?.value });
|
|
1133
1320
|
var ItemContent = ({ anchorEl, bind }) => {
|
|
1134
|
-
return /* @__PURE__ */
|
|
1321
|
+
return /* @__PURE__ */ React26.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React26.createElement(Content, { anchorEl }));
|
|
1135
1322
|
};
|
|
1136
1323
|
var Content = ({ anchorEl }) => {
|
|
1137
1324
|
const context = useBoundProp(import_editor_props9.shadowPropTypeUtil);
|
|
1138
|
-
|
|
1325
|
+
const rowRef = [(0, import_react15.useRef)(), (0, import_react15.useRef)()];
|
|
1326
|
+
return /* @__PURE__ */ React26.createElement(PropProvider, { ...context }, /* @__PURE__ */ React26.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React26.createElement(PopoverGridContainer, null, /* @__PURE__ */ React26.createElement(Control2, { bind: "color", label: (0, import_i18n5.__)("Color", "elementor") }, /* @__PURE__ */ React26.createElement(ColorControl, { anchorEl })), /* @__PURE__ */ React26.createElement(Control2, { bind: "position", label: (0, import_i18n5.__)("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React26.createElement(
|
|
1139
1327
|
SelectControl,
|
|
1140
1328
|
{
|
|
1141
1329
|
options: [
|
|
@@ -1143,14 +1331,14 @@ var Content = ({ anchorEl }) => {
|
|
|
1143
1331
|
{ label: (0, import_i18n5.__)("Outset", "elementor"), value: null }
|
|
1144
1332
|
]
|
|
1145
1333
|
}
|
|
1146
|
-
))), /* @__PURE__ */
|
|
1334
|
+
))), /* @__PURE__ */ React26.createElement(PopoverGridContainer, { ref: rowRef[0] }, /* @__PURE__ */ React26.createElement(Control2, { bind: "hOffset", label: (0, import_i18n5.__)("Horizontal", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[0] })), /* @__PURE__ */ React26.createElement(Control2, { bind: "vOffset", label: (0, import_i18n5.__)("Vertical", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[0] }))), /* @__PURE__ */ React26.createElement(PopoverGridContainer, { ref: rowRef[1] }, /* @__PURE__ */ React26.createElement(Control2, { bind: "blur", label: (0, import_i18n5.__)("Blur", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[1] })), /* @__PURE__ */ React26.createElement(Control2, { bind: "spread", label: (0, import_i18n5.__)("Spread", "elementor") }, /* @__PURE__ */ React26.createElement(SizeControl, { anchorRef: rowRef[1] })))));
|
|
1147
1335
|
};
|
|
1148
1336
|
var Control2 = ({
|
|
1149
1337
|
label,
|
|
1150
1338
|
bind,
|
|
1151
1339
|
children,
|
|
1152
1340
|
sx
|
|
1153
|
-
}) => /* @__PURE__ */
|
|
1341
|
+
}) => /* @__PURE__ */ React26.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React26.createElement(import_ui20.Grid, { item: true, xs: 6, sx }, /* @__PURE__ */ React26.createElement(import_ui20.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React26.createElement(import_ui20.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(import_ui20.FormLabel, { size: "tiny" }, label)), /* @__PURE__ */ React26.createElement(import_ui20.Grid, { item: true, xs: 12 }, children))));
|
|
1154
1342
|
var ItemLabel = ({ value }) => {
|
|
1155
1343
|
const { position, hOffset, vOffset, blur, spread } = value.value;
|
|
1156
1344
|
const { size: blurSize = "", unit: blurUnit = "" } = blur?.value || {};
|
|
@@ -1164,7 +1352,7 @@ var ItemLabel = ({ value }) => {
|
|
|
1164
1352
|
blurSize + blurUnit,
|
|
1165
1353
|
spreadSize + spreadUnit
|
|
1166
1354
|
].join(" ");
|
|
1167
|
-
return /* @__PURE__ */
|
|
1355
|
+
return /* @__PURE__ */ React26.createElement("span", { style: { textTransform: "capitalize" } }, positionLabel, ": ", sizes);
|
|
1168
1356
|
};
|
|
1169
1357
|
var initialShadow = {
|
|
1170
1358
|
$$type: "shadow",
|
|
@@ -1194,28 +1382,28 @@ var initialShadow = {
|
|
|
1194
1382
|
};
|
|
1195
1383
|
|
|
1196
1384
|
// src/controls/toggle-control.tsx
|
|
1197
|
-
var
|
|
1385
|
+
var React29 = __toESM(require("react"));
|
|
1198
1386
|
var import_editor_props10 = require("@elementor/editor-props");
|
|
1199
1387
|
|
|
1200
1388
|
// src/components/control-toggle-button-group.tsx
|
|
1201
|
-
var
|
|
1202
|
-
var
|
|
1203
|
-
var
|
|
1204
|
-
var
|
|
1389
|
+
var React28 = __toESM(require("react"));
|
|
1390
|
+
var import_react16 = require("react");
|
|
1391
|
+
var import_icons5 = require("@elementor/icons");
|
|
1392
|
+
var import_ui22 = require("@elementor/ui");
|
|
1205
1393
|
|
|
1206
1394
|
// src/components/conditional-tooltip.tsx
|
|
1207
|
-
var
|
|
1208
|
-
var
|
|
1395
|
+
var React27 = __toESM(require("react"));
|
|
1396
|
+
var import_ui21 = require("@elementor/ui");
|
|
1209
1397
|
var ConditionalTooltip = ({
|
|
1210
1398
|
showTooltip,
|
|
1211
1399
|
children,
|
|
1212
1400
|
label
|
|
1213
1401
|
}) => {
|
|
1214
|
-
return showTooltip && label ? /* @__PURE__ */
|
|
1402
|
+
return showTooltip && label ? /* @__PURE__ */ React27.createElement(import_ui21.Tooltip, { title: label, disableFocusListener: true, placement: "top" }, children) : children;
|
|
1215
1403
|
};
|
|
1216
1404
|
|
|
1217
1405
|
// src/components/control-toggle-button-group.tsx
|
|
1218
|
-
var StyledToggleButtonGroup = (0,
|
|
1406
|
+
var StyledToggleButtonGroup = (0, import_ui22.styled)(import_ui22.ToggleButtonGroup)`
|
|
1219
1407
|
${({ justify }) => `justify-content: ${justify};`}
|
|
1220
1408
|
button:not( :last-of-type ) {
|
|
1221
1409
|
border-start-end-radius: 0;
|
|
@@ -1244,17 +1432,17 @@ var ControlToggleButtonGroup = ({
|
|
|
1244
1432
|
const shouldSliceItems = exclusive && maxItems !== void 0 && items.length > maxItems;
|
|
1245
1433
|
const menuItems = shouldSliceItems ? items.slice(maxItems - 1) : [];
|
|
1246
1434
|
const fixedItems = shouldSliceItems ? items.slice(0, maxItems - 1) : items;
|
|
1247
|
-
const isRtl = "rtl" === (0,
|
|
1435
|
+
const isRtl = "rtl" === (0, import_ui22.useTheme)().direction;
|
|
1248
1436
|
const handleChange = (_, newValue) => {
|
|
1249
1437
|
onChange(newValue);
|
|
1250
1438
|
};
|
|
1251
|
-
const getGridTemplateColumns = (0,
|
|
1439
|
+
const getGridTemplateColumns = (0, import_react16.useMemo)(() => {
|
|
1252
1440
|
const isOffLimits = menuItems?.length;
|
|
1253
1441
|
const itemsCount = isOffLimits ? fixedItems.length + 1 : fixedItems.length;
|
|
1254
1442
|
const templateColumnsSuffix = isOffLimits ? "auto" : "";
|
|
1255
1443
|
return `repeat(${itemsCount}, minmax(0, 25%)) ${templateColumnsSuffix}`;
|
|
1256
1444
|
}, [menuItems?.length, fixedItems.length]);
|
|
1257
|
-
return /* @__PURE__ */
|
|
1445
|
+
return /* @__PURE__ */ React28.createElement(ControlActions, null, /* @__PURE__ */ React28.createElement(
|
|
1258
1446
|
StyledToggleButtonGroup,
|
|
1259
1447
|
{
|
|
1260
1448
|
justify,
|
|
@@ -1269,16 +1457,16 @@ var ControlToggleButtonGroup = ({
|
|
|
1269
1457
|
width: `100%`
|
|
1270
1458
|
}
|
|
1271
1459
|
},
|
|
1272
|
-
fixedItems.map(({ label, value: buttonValue, renderContent: Content3, showTooltip }) => /* @__PURE__ */
|
|
1460
|
+
fixedItems.map(({ label, value: buttonValue, renderContent: Content3, showTooltip }) => /* @__PURE__ */ React28.createElement(
|
|
1273
1461
|
ConditionalTooltip,
|
|
1274
1462
|
{
|
|
1275
1463
|
key: buttonValue,
|
|
1276
1464
|
label,
|
|
1277
1465
|
showTooltip: showTooltip || false
|
|
1278
1466
|
},
|
|
1279
|
-
/* @__PURE__ */
|
|
1467
|
+
/* @__PURE__ */ React28.createElement(import_ui22.ToggleButton, { value: buttonValue, "aria-label": label, size, fullWidth }, /* @__PURE__ */ React28.createElement(Content3, { size }))
|
|
1280
1468
|
)),
|
|
1281
|
-
menuItems.length && exclusive && /* @__PURE__ */
|
|
1469
|
+
menuItems.length && exclusive && /* @__PURE__ */ React28.createElement(
|
|
1282
1470
|
SplitButtonGroup,
|
|
1283
1471
|
{
|
|
1284
1472
|
size,
|
|
@@ -1298,8 +1486,8 @@ var SplitButtonGroup = ({
|
|
|
1298
1486
|
value
|
|
1299
1487
|
}) => {
|
|
1300
1488
|
const previewButton = usePreviewButton(items, value);
|
|
1301
|
-
const [isMenuOpen, setIsMenuOpen] = (0,
|
|
1302
|
-
const menuButtonRef = (0,
|
|
1489
|
+
const [isMenuOpen, setIsMenuOpen] = (0, import_react16.useState)(false);
|
|
1490
|
+
const menuButtonRef = (0, import_react16.useRef)(null);
|
|
1303
1491
|
const onMenuToggle = (ev) => {
|
|
1304
1492
|
setIsMenuOpen((prev) => !prev);
|
|
1305
1493
|
ev.preventDefault();
|
|
@@ -1312,8 +1500,8 @@ var SplitButtonGroup = ({
|
|
|
1312
1500
|
const shouldRemove = newValue === value;
|
|
1313
1501
|
onChange(shouldRemove ? null : newValue);
|
|
1314
1502
|
};
|
|
1315
|
-
return /* @__PURE__ */
|
|
1316
|
-
|
|
1503
|
+
return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(
|
|
1504
|
+
import_ui22.ToggleButton,
|
|
1317
1505
|
{
|
|
1318
1506
|
value: previewButton.value,
|
|
1319
1507
|
"aria-label": previewButton.label,
|
|
@@ -1326,8 +1514,8 @@ var SplitButtonGroup = ({
|
|
|
1326
1514
|
ref: menuButtonRef
|
|
1327
1515
|
},
|
|
1328
1516
|
previewButton.renderContent({ size })
|
|
1329
|
-
), /* @__PURE__ */
|
|
1330
|
-
|
|
1517
|
+
), /* @__PURE__ */ React28.createElement(
|
|
1518
|
+
import_ui22.ToggleButton,
|
|
1331
1519
|
{
|
|
1332
1520
|
size,
|
|
1333
1521
|
"aria-expanded": isMenuOpen ? "true" : void 0,
|
|
@@ -1337,9 +1525,9 @@ var SplitButtonGroup = ({
|
|
|
1337
1525
|
ref: menuButtonRef,
|
|
1338
1526
|
value: "__chevron-icon-button__"
|
|
1339
1527
|
},
|
|
1340
|
-
/* @__PURE__ */
|
|
1341
|
-
), /* @__PURE__ */
|
|
1342
|
-
|
|
1528
|
+
/* @__PURE__ */ React28.createElement(import_icons5.ChevronDownIcon, { fontSize: size })
|
|
1529
|
+
), /* @__PURE__ */ React28.createElement(
|
|
1530
|
+
import_ui22.Menu,
|
|
1343
1531
|
{
|
|
1344
1532
|
open: isMenuOpen,
|
|
1345
1533
|
onClose: () => setIsMenuOpen(false),
|
|
@@ -1356,22 +1544,22 @@ var SplitButtonGroup = ({
|
|
|
1356
1544
|
mt: 0.5
|
|
1357
1545
|
}
|
|
1358
1546
|
},
|
|
1359
|
-
items.map(({ label, value: buttonValue }) => /* @__PURE__ */
|
|
1360
|
-
|
|
1547
|
+
items.map(({ label, value: buttonValue }) => /* @__PURE__ */ React28.createElement(
|
|
1548
|
+
import_ui22.MenuItem,
|
|
1361
1549
|
{
|
|
1362
1550
|
key: buttonValue,
|
|
1363
1551
|
selected: buttonValue === value,
|
|
1364
1552
|
onClick: () => onMenuItemClick(buttonValue)
|
|
1365
1553
|
},
|
|
1366
|
-
/* @__PURE__ */
|
|
1554
|
+
/* @__PURE__ */ React28.createElement(import_ui22.ListItemText, null, /* @__PURE__ */ React28.createElement(import_ui22.Typography, { sx: { fontSize: "14px" } }, label))
|
|
1367
1555
|
))
|
|
1368
1556
|
));
|
|
1369
1557
|
};
|
|
1370
1558
|
var usePreviewButton = (items, value) => {
|
|
1371
|
-
const [previewButton, setPreviewButton] = (0,
|
|
1559
|
+
const [previewButton, setPreviewButton] = (0, import_react16.useState)(
|
|
1372
1560
|
items.find((item) => item.value === value) ?? items[0]
|
|
1373
1561
|
);
|
|
1374
|
-
(0,
|
|
1562
|
+
(0, import_react16.useEffect)(() => {
|
|
1375
1563
|
const selectedButton = items.find((item) => item.value === value);
|
|
1376
1564
|
if (selectedButton) {
|
|
1377
1565
|
setPreviewButton(selectedButton);
|
|
@@ -1403,7 +1591,7 @@ var ToggleControl = createControl(
|
|
|
1403
1591
|
fullWidth,
|
|
1404
1592
|
size
|
|
1405
1593
|
};
|
|
1406
|
-
return exclusive ? /* @__PURE__ */
|
|
1594
|
+
return exclusive ? /* @__PURE__ */ React29.createElement(
|
|
1407
1595
|
ControlToggleButtonGroup,
|
|
1408
1596
|
{
|
|
1409
1597
|
...toggleButtonGroupProps,
|
|
@@ -1412,7 +1600,7 @@ var ToggleControl = createControl(
|
|
|
1412
1600
|
disabled,
|
|
1413
1601
|
exclusive: true
|
|
1414
1602
|
}
|
|
1415
|
-
) : /* @__PURE__ */
|
|
1603
|
+
) : /* @__PURE__ */ React29.createElement(
|
|
1416
1604
|
ControlToggleButtonGroup,
|
|
1417
1605
|
{
|
|
1418
1606
|
...toggleButtonGroupProps,
|
|
@@ -1426,9 +1614,9 @@ var ToggleControl = createControl(
|
|
|
1426
1614
|
);
|
|
1427
1615
|
|
|
1428
1616
|
// src/controls/number-control.tsx
|
|
1429
|
-
var
|
|
1617
|
+
var React30 = __toESM(require("react"));
|
|
1430
1618
|
var import_editor_props11 = require("@elementor/editor-props");
|
|
1431
|
-
var
|
|
1619
|
+
var import_ui23 = require("@elementor/ui");
|
|
1432
1620
|
var isEmptyOrNaN = (value) => value === null || value === void 0 || value === "" || Number.isNaN(Number(value));
|
|
1433
1621
|
var RESTRICTED_INPUT_KEYS2 = ["e", "E", "+", "-"];
|
|
1434
1622
|
var NumberControl = createControl(
|
|
@@ -1449,8 +1637,8 @@ var NumberControl = createControl(
|
|
|
1449
1637
|
const formattedValue = shouldForceInt ? +parseInt(eventValue) : Number(eventValue);
|
|
1450
1638
|
setValue(Math.min(Math.max(formattedValue, min), max));
|
|
1451
1639
|
};
|
|
1452
|
-
return /* @__PURE__ */
|
|
1453
|
-
|
|
1640
|
+
return /* @__PURE__ */ React30.createElement(ControlActions, null, /* @__PURE__ */ React30.createElement(
|
|
1641
|
+
import_ui23.TextField,
|
|
1454
1642
|
{
|
|
1455
1643
|
size: "tiny",
|
|
1456
1644
|
type: "number",
|
|
@@ -1471,18 +1659,18 @@ var NumberControl = createControl(
|
|
|
1471
1659
|
);
|
|
1472
1660
|
|
|
1473
1661
|
// src/controls/equal-unequal-sizes-control.tsx
|
|
1474
|
-
var
|
|
1475
|
-
var
|
|
1662
|
+
var React32 = __toESM(require("react"));
|
|
1663
|
+
var import_react17 = require("react");
|
|
1476
1664
|
var import_editor_props12 = require("@elementor/editor-props");
|
|
1477
|
-
var
|
|
1478
|
-
var
|
|
1665
|
+
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
1666
|
+
var import_ui25 = require("@elementor/ui");
|
|
1479
1667
|
var import_i18n6 = require("@wordpress/i18n");
|
|
1480
1668
|
|
|
1481
1669
|
// src/components/control-label.tsx
|
|
1482
|
-
var
|
|
1483
|
-
var
|
|
1670
|
+
var React31 = __toESM(require("react"));
|
|
1671
|
+
var import_ui24 = require("@elementor/ui");
|
|
1484
1672
|
var ControlLabel = ({ children }) => {
|
|
1485
|
-
return /* @__PURE__ */
|
|
1673
|
+
return /* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React31.createElement(ControlFormLabel, null, children), /* @__PURE__ */ React31.createElement(ControlAdornments, null));
|
|
1486
1674
|
};
|
|
1487
1675
|
|
|
1488
1676
|
// src/controls/equal-unequal-sizes-control.tsx
|
|
@@ -1503,9 +1691,8 @@ function EqualUnequalSizesControl({
|
|
|
1503
1691
|
items,
|
|
1504
1692
|
multiSizePropTypeUtil
|
|
1505
1693
|
}) {
|
|
1506
|
-
const popupId = (0,
|
|
1507
|
-
const
|
|
1508
|
-
const popupState = (0, import_ui23.usePopupState)({ variant: "popover", popupId });
|
|
1694
|
+
const popupId = (0, import_react17.useId)();
|
|
1695
|
+
const popupState = (0, import_ui25.usePopupState)({ variant: "popover", popupId });
|
|
1509
1696
|
const {
|
|
1510
1697
|
propType: multiSizePropType,
|
|
1511
1698
|
value: multiSizeValue,
|
|
@@ -1513,6 +1700,7 @@ function EqualUnequalSizesControl({
|
|
|
1513
1700
|
disabled: multiSizeDisabled
|
|
1514
1701
|
} = useBoundProp(multiSizePropTypeUtil);
|
|
1515
1702
|
const { value: sizeValue, setValue: setSizeValue } = useBoundProp(import_editor_props12.sizePropTypeUtil);
|
|
1703
|
+
const rowRefs = [(0, import_react17.useRef)(), (0, import_react17.useRef)()];
|
|
1516
1704
|
const splitEqualValue = () => {
|
|
1517
1705
|
if (!sizeValue) {
|
|
1518
1706
|
return null;
|
|
@@ -1539,21 +1727,27 @@ function EqualUnequalSizesControl({
|
|
|
1539
1727
|
}
|
|
1540
1728
|
return splitEqualValue() ?? null;
|
|
1541
1729
|
};
|
|
1542
|
-
const isShowingGeneralIndicator = !(0,
|
|
1730
|
+
const isShowingGeneralIndicator = !(0, import_editor_v1_adapters2.isExperimentActive)("e_v_3_30") || !popupState.isOpen;
|
|
1543
1731
|
const isMixed = !!multiSizeValue;
|
|
1544
|
-
return /* @__PURE__ */
|
|
1545
|
-
|
|
1732
|
+
return /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, !isShowingGeneralIndicator ? /* @__PURE__ */ React32.createElement(ControlFormLabel, null, label) : /* @__PURE__ */ React32.createElement(ControlLabel, null, label)), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React32.createElement(
|
|
1733
|
+
SizeControl,
|
|
1734
|
+
{
|
|
1735
|
+
placeholder: isMixed ? (0, import_i18n6.__)("Mixed", "elementor") : void 0,
|
|
1736
|
+
anchorRef: rowRefs[0]
|
|
1737
|
+
}
|
|
1738
|
+
), /* @__PURE__ */ React32.createElement(import_ui25.Tooltip, { title: tooltipLabel, placement: "top" }, /* @__PURE__ */ React32.createElement(
|
|
1739
|
+
import_ui25.ToggleButton,
|
|
1546
1740
|
{
|
|
1547
1741
|
size: "tiny",
|
|
1548
1742
|
value: "check",
|
|
1549
1743
|
sx: { marginLeft: "auto" },
|
|
1550
|
-
...(0,
|
|
1744
|
+
...(0, import_ui25.bindToggle)(popupState),
|
|
1551
1745
|
selected: popupState.isOpen,
|
|
1552
1746
|
"aria-label": tooltipLabel
|
|
1553
1747
|
},
|
|
1554
1748
|
icon
|
|
1555
|
-
))))), /* @__PURE__ */
|
|
1556
|
-
|
|
1749
|
+
))))), /* @__PURE__ */ React32.createElement(
|
|
1750
|
+
import_ui25.Popover,
|
|
1557
1751
|
{
|
|
1558
1752
|
disablePortal: true,
|
|
1559
1753
|
disableScrollLock: true,
|
|
@@ -1565,12 +1759,12 @@ function EqualUnequalSizesControl({
|
|
|
1565
1759
|
vertical: "top",
|
|
1566
1760
|
horizontal: "right"
|
|
1567
1761
|
},
|
|
1568
|
-
...(0,
|
|
1762
|
+
...(0, import_ui25.bindPopover)(popupState),
|
|
1569
1763
|
slotProps: {
|
|
1570
|
-
paper: { sx: { mt: 0.5, width:
|
|
1764
|
+
paper: { sx: { mt: 0.5, width: rowRefs[0].current?.getBoundingClientRect().width } }
|
|
1571
1765
|
}
|
|
1572
1766
|
},
|
|
1573
|
-
/* @__PURE__ */
|
|
1767
|
+
/* @__PURE__ */ React32.createElement(
|
|
1574
1768
|
PropProvider,
|
|
1575
1769
|
{
|
|
1576
1770
|
propType: multiSizePropType,
|
|
@@ -1578,29 +1772,34 @@ function EqualUnequalSizesControl({
|
|
|
1578
1772
|
setValue: setNestedProp,
|
|
1579
1773
|
disabled: multiSizeDisabled
|
|
1580
1774
|
},
|
|
1581
|
-
/* @__PURE__ */
|
|
1775
|
+
/* @__PURE__ */ React32.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React32.createElement(PopoverGridContainer, { ref: rowRefs[1] }, /* @__PURE__ */ React32.createElement(MultiSizeValueControl, { item: items[0], rowRef: rowRefs[1] }), /* @__PURE__ */ React32.createElement(MultiSizeValueControl, { item: items[1], rowRef: rowRefs[1] })), /* @__PURE__ */ React32.createElement(PopoverGridContainer, { ref: rowRefs[2] }, /* @__PURE__ */ React32.createElement(MultiSizeValueControl, { item: items[2], rowRef: rowRefs[2] }), /* @__PURE__ */ React32.createElement(MultiSizeValueControl, { item: items[3], rowRef: rowRefs[2] })))
|
|
1582
1776
|
)
|
|
1583
1777
|
));
|
|
1584
1778
|
}
|
|
1585
|
-
var MultiSizeValueControl = ({
|
|
1586
|
-
|
|
1587
|
-
|
|
1779
|
+
var MultiSizeValueControl = ({
|
|
1780
|
+
item,
|
|
1781
|
+
rowRef
|
|
1782
|
+
}) => {
|
|
1783
|
+
const isUsingNestedProps = (0, import_editor_v1_adapters2.isExperimentActive)("e_v_3_30");
|
|
1784
|
+
return /* @__PURE__ */ React32.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, isUsingNestedProps ? /* @__PURE__ */ React32.createElement(ControlLabel, null, item.label) : /* @__PURE__ */ React32.createElement(ControlFormLabel, null, item.label)), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(SizeControl, { startIcon: item.icon, anchorRef: rowRef })))));
|
|
1588
1785
|
};
|
|
1589
1786
|
|
|
1590
1787
|
// src/controls/linked-dimensions-control.tsx
|
|
1591
|
-
var
|
|
1788
|
+
var React33 = __toESM(require("react"));
|
|
1789
|
+
var import_react18 = require("react");
|
|
1592
1790
|
var import_editor_props13 = require("@elementor/editor-props");
|
|
1593
|
-
var
|
|
1594
|
-
var
|
|
1595
|
-
var
|
|
1791
|
+
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
1792
|
+
var import_icons6 = require("@elementor/icons");
|
|
1793
|
+
var import_ui26 = require("@elementor/ui");
|
|
1596
1794
|
var import_i18n7 = require("@wordpress/i18n");
|
|
1597
1795
|
var LinkedDimensionsControl = createControl(
|
|
1598
1796
|
({
|
|
1599
1797
|
label,
|
|
1600
1798
|
isSiteRtl = false,
|
|
1601
|
-
|
|
1799
|
+
extendedOptions
|
|
1602
1800
|
}) => {
|
|
1603
1801
|
const { value: sizeValue, setValue: setSizeValue, disabled: sizeDisabled } = useBoundProp(import_editor_props13.sizePropTypeUtil);
|
|
1802
|
+
const gridRowRefs = [(0, import_react18.useRef)(), (0, import_react18.useRef)()];
|
|
1604
1803
|
const {
|
|
1605
1804
|
value: dimensionsValue,
|
|
1606
1805
|
setValue: setDimensionsValue,
|
|
@@ -1608,7 +1807,7 @@ var LinkedDimensionsControl = createControl(
|
|
|
1608
1807
|
disabled: dimensionsDisabled
|
|
1609
1808
|
} = useBoundProp(import_editor_props13.dimensionsPropTypeUtil);
|
|
1610
1809
|
const isLinked = !dimensionsValue && !sizeValue ? true : !!sizeValue;
|
|
1611
|
-
const isUsingNestedProps = (0,
|
|
1810
|
+
const isUsingNestedProps = (0, import_editor_v1_adapters3.isExperimentActive)("e_v_3_30");
|
|
1612
1811
|
const onLinkToggle = () => {
|
|
1613
1812
|
if (!isLinked) {
|
|
1614
1813
|
setSizeValue(dimensionsValue["block-start"]?.value ?? null);
|
|
@@ -1623,11 +1822,11 @@ var LinkedDimensionsControl = createControl(
|
|
|
1623
1822
|
});
|
|
1624
1823
|
};
|
|
1625
1824
|
const tooltipLabel = label.toLowerCase();
|
|
1626
|
-
const LinkedIcon = isLinked ?
|
|
1825
|
+
const LinkedIcon = isLinked ? import_icons6.LinkIcon : import_icons6.DetachIcon;
|
|
1627
1826
|
const linkedLabel = (0, import_i18n7.__)("Link %s", "elementor").replace("%s", tooltipLabel);
|
|
1628
1827
|
const unlinkedLabel = (0, import_i18n7.__)("Unlink %s", "elementor").replace("%s", tooltipLabel);
|
|
1629
1828
|
const disabled = sizeDisabled || dimensionsDisabled;
|
|
1630
|
-
return /* @__PURE__ */
|
|
1829
|
+
return /* @__PURE__ */ React33.createElement(
|
|
1631
1830
|
PropProvider,
|
|
1632
1831
|
{
|
|
1633
1832
|
propType,
|
|
@@ -1635,8 +1834,8 @@ var LinkedDimensionsControl = createControl(
|
|
|
1635
1834
|
setValue: setDimensionsValue,
|
|
1636
1835
|
disabled
|
|
1637
1836
|
},
|
|
1638
|
-
/* @__PURE__ */
|
|
1639
|
-
|
|
1837
|
+
/* @__PURE__ */ React33.createElement(import_ui26.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, isUsingNestedProps ? /* @__PURE__ */ React33.createElement(ControlFormLabel, null, label) : /* @__PURE__ */ React33.createElement(ControlLabel, null, label), /* @__PURE__ */ React33.createElement(import_ui26.Tooltip, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React33.createElement(
|
|
1838
|
+
import_ui26.ToggleButton,
|
|
1640
1839
|
{
|
|
1641
1840
|
"aria-label": isLinked ? unlinkedLabel : linkedLabel,
|
|
1642
1841
|
size: "tiny",
|
|
@@ -1646,54 +1845,18 @@ var LinkedDimensionsControl = createControl(
|
|
|
1646
1845
|
onChange: onLinkToggle,
|
|
1647
1846
|
disabled
|
|
1648
1847
|
},
|
|
1649
|
-
/* @__PURE__ */
|
|
1848
|
+
/* @__PURE__ */ React33.createElement(LinkedIcon, { fontSize: "tiny" })
|
|
1650
1849
|
))),
|
|
1651
|
-
/* @__PURE__ */
|
|
1850
|
+
getCssMarginProps(isSiteRtl).map((row, index) => /* @__PURE__ */ React33.createElement(import_ui26.Stack, { direction: "row", gap: 2, flexWrap: "nowrap", key: index, ref: gridRowRefs[index] }, row.map(({ icon, ...props }) => /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 0.75, alignItems: "center", key: props.bind }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React33.createElement(Label, { ...props })), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React33.createElement(
|
|
1652
1851
|
Control3,
|
|
1653
1852
|
{
|
|
1654
|
-
bind:
|
|
1655
|
-
startIcon:
|
|
1853
|
+
bind: props.bind,
|
|
1854
|
+
startIcon: icon,
|
|
1656
1855
|
isLinked,
|
|
1657
|
-
|
|
1856
|
+
extendedOptions,
|
|
1857
|
+
anchorRef: gridRowRefs[index]
|
|
1658
1858
|
}
|
|
1659
|
-
)))
|
|
1660
|
-
Label,
|
|
1661
|
-
{
|
|
1662
|
-
bind: "inline-end",
|
|
1663
|
-
label: isSiteRtl ? (0, import_i18n7.__)("Left", "elementor") : (0, import_i18n7.__)("Right", "elementor")
|
|
1664
|
-
}
|
|
1665
|
-
)), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
|
|
1666
|
-
Control3,
|
|
1667
|
-
{
|
|
1668
|
-
bind: "inline-end",
|
|
1669
|
-
startIcon: isSiteRtl ? /* @__PURE__ */ React31.createElement(import_icons5.SideLeftIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React31.createElement(import_icons5.SideRightIcon, { fontSize: "tiny" }),
|
|
1670
|
-
isLinked,
|
|
1671
|
-
extendedValues
|
|
1672
|
-
}
|
|
1673
|
-
)))),
|
|
1674
|
-
/* @__PURE__ */ React31.createElement(import_ui24.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(Label, { bind: "block-end", label: (0, import_i18n7.__)("Bottom", "elementor") })), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
|
|
1675
|
-
Control3,
|
|
1676
|
-
{
|
|
1677
|
-
bind: "block-end",
|
|
1678
|
-
startIcon: /* @__PURE__ */ React31.createElement(import_icons5.SideBottomIcon, { fontSize: "tiny" }),
|
|
1679
|
-
isLinked,
|
|
1680
|
-
extendedValues
|
|
1681
|
-
}
|
|
1682
|
-
))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
|
|
1683
|
-
Label,
|
|
1684
|
-
{
|
|
1685
|
-
bind: "inline-start",
|
|
1686
|
-
label: isSiteRtl ? (0, import_i18n7.__)("Right", "elementor") : (0, import_i18n7.__)("Left", "elementor")
|
|
1687
|
-
}
|
|
1688
|
-
)), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React31.createElement(
|
|
1689
|
-
Control3,
|
|
1690
|
-
{
|
|
1691
|
-
bind: "inline-start",
|
|
1692
|
-
isLinked,
|
|
1693
|
-
extendedValues,
|
|
1694
|
-
startIcon: isSiteRtl ? /* @__PURE__ */ React31.createElement(import_icons5.SideRightIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React31.createElement(import_icons5.SideLeftIcon, { fontSize: "tiny" })
|
|
1695
|
-
}
|
|
1696
|
-
))))
|
|
1859
|
+
))))))
|
|
1697
1860
|
);
|
|
1698
1861
|
}
|
|
1699
1862
|
);
|
|
@@ -1701,33 +1864,62 @@ var Control3 = ({
|
|
|
1701
1864
|
bind,
|
|
1702
1865
|
startIcon,
|
|
1703
1866
|
isLinked,
|
|
1704
|
-
|
|
1867
|
+
extendedOptions,
|
|
1868
|
+
anchorRef
|
|
1705
1869
|
}) => {
|
|
1706
1870
|
if (isLinked) {
|
|
1707
|
-
return /* @__PURE__ */
|
|
1871
|
+
return /* @__PURE__ */ React33.createElement(SizeControl, { startIcon, extendedOptions, anchorRef });
|
|
1708
1872
|
}
|
|
1709
|
-
return /* @__PURE__ */
|
|
1873
|
+
return /* @__PURE__ */ React33.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React33.createElement(SizeControl, { startIcon, extendedOptions, anchorRef }));
|
|
1710
1874
|
};
|
|
1711
1875
|
var Label = ({ label, bind }) => {
|
|
1712
|
-
const isUsingNestedProps = (0,
|
|
1876
|
+
const isUsingNestedProps = (0, import_editor_v1_adapters3.isExperimentActive)("e_v_3_30");
|
|
1713
1877
|
if (!isUsingNestedProps) {
|
|
1714
|
-
return /* @__PURE__ */
|
|
1878
|
+
return /* @__PURE__ */ React33.createElement(ControlFormLabel, null, label);
|
|
1715
1879
|
}
|
|
1716
|
-
return /* @__PURE__ */
|
|
1880
|
+
return /* @__PURE__ */ React33.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React33.createElement(ControlLabel, null, label));
|
|
1717
1881
|
};
|
|
1882
|
+
function getCssMarginProps(isSiteRtl) {
|
|
1883
|
+
return [
|
|
1884
|
+
[
|
|
1885
|
+
{
|
|
1886
|
+
bind: "block-start",
|
|
1887
|
+
label: (0, import_i18n7.__)("Top", "elementor"),
|
|
1888
|
+
icon: /* @__PURE__ */ React33.createElement(import_icons6.SideTopIcon, { fontSize: "tiny" })
|
|
1889
|
+
},
|
|
1890
|
+
{
|
|
1891
|
+
bind: "inline-end",
|
|
1892
|
+
label: isSiteRtl ? (0, import_i18n7.__)("Left", "elementor") : (0, import_i18n7.__)("Right", "elementor"),
|
|
1893
|
+
icon: isSiteRtl ? /* @__PURE__ */ React33.createElement(import_icons6.SideLeftIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React33.createElement(import_icons6.SideRightIcon, { fontSize: "tiny" })
|
|
1894
|
+
}
|
|
1895
|
+
],
|
|
1896
|
+
[
|
|
1897
|
+
{
|
|
1898
|
+
bind: "block-end",
|
|
1899
|
+
label: (0, import_i18n7.__)("Bottom", "elementor"),
|
|
1900
|
+
icon: /* @__PURE__ */ React33.createElement(import_icons6.SideBottomIcon, { fontSize: "tiny" })
|
|
1901
|
+
},
|
|
1902
|
+
{
|
|
1903
|
+
bind: "inline-start",
|
|
1904
|
+
label: isSiteRtl ? (0, import_i18n7.__)("Right", "elementor") : (0, import_i18n7.__)("Left", "elementor"),
|
|
1905
|
+
icon: isSiteRtl ? /* @__PURE__ */ React33.createElement(import_icons6.SideRightIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React33.createElement(import_icons6.SideLeftIcon, { fontSize: "tiny" })
|
|
1906
|
+
}
|
|
1907
|
+
]
|
|
1908
|
+
];
|
|
1909
|
+
}
|
|
1718
1910
|
|
|
1719
1911
|
// src/controls/font-family-control/font-family-control.tsx
|
|
1720
|
-
var
|
|
1912
|
+
var React35 = __toESM(require("react"));
|
|
1721
1913
|
var import_editor_props14 = require("@elementor/editor-props");
|
|
1722
|
-
var
|
|
1723
|
-
var
|
|
1914
|
+
var import_icons8 = require("@elementor/icons");
|
|
1915
|
+
var import_ui28 = require("@elementor/ui");
|
|
1724
1916
|
|
|
1725
1917
|
// src/components/font-family-selector.tsx
|
|
1726
|
-
var
|
|
1727
|
-
var
|
|
1918
|
+
var import_react19 = require("react");
|
|
1919
|
+
var React34 = __toESM(require("react"));
|
|
1728
1920
|
var import_editor_ui3 = require("@elementor/editor-ui");
|
|
1729
|
-
var
|
|
1730
|
-
var
|
|
1921
|
+
var import_icons7 = require("@elementor/icons");
|
|
1922
|
+
var import_ui27 = require("@elementor/ui");
|
|
1731
1923
|
var import_utils2 = require("@elementor/utils");
|
|
1732
1924
|
var import_react_virtual = require("@tanstack/react-virtual");
|
|
1733
1925
|
var import_i18n8 = require("@wordpress/i18n");
|
|
@@ -1762,7 +1954,7 @@ var FontFamilySelector = ({
|
|
|
1762
1954
|
onFontFamilyChange,
|
|
1763
1955
|
onClose
|
|
1764
1956
|
}) => {
|
|
1765
|
-
const [searchValue, setSearchValue] = (0,
|
|
1957
|
+
const [searchValue, setSearchValue] = (0, import_react19.useState)("");
|
|
1766
1958
|
const filteredFontFamilies = useFilteredFontFamilies(fontFamilies, searchValue);
|
|
1767
1959
|
const handleSearch = (event) => {
|
|
1768
1960
|
setSearchValue(event.target.value);
|
|
@@ -1771,15 +1963,15 @@ var FontFamilySelector = ({
|
|
|
1771
1963
|
setSearchValue("");
|
|
1772
1964
|
onClose();
|
|
1773
1965
|
};
|
|
1774
|
-
return /* @__PURE__ */
|
|
1966
|
+
return /* @__PURE__ */ React34.createElement(import_ui27.Stack, null, /* @__PURE__ */ React34.createElement(
|
|
1775
1967
|
import_editor_ui3.PopoverHeader,
|
|
1776
1968
|
{
|
|
1777
1969
|
title: (0, import_i18n8.__)("Font Family", "elementor"),
|
|
1778
1970
|
onClose: handleClose,
|
|
1779
|
-
icon: /* @__PURE__ */
|
|
1971
|
+
icon: /* @__PURE__ */ React34.createElement(import_icons7.TextIcon, { fontSize: SIZE2 })
|
|
1780
1972
|
}
|
|
1781
|
-
), /* @__PURE__ */
|
|
1782
|
-
|
|
1973
|
+
), /* @__PURE__ */ React34.createElement(import_ui27.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React34.createElement(
|
|
1974
|
+
import_ui27.TextField,
|
|
1783
1975
|
{
|
|
1784
1976
|
autoFocus: true,
|
|
1785
1977
|
fullWidth: true,
|
|
@@ -1788,10 +1980,10 @@ var FontFamilySelector = ({
|
|
|
1788
1980
|
placeholder: (0, import_i18n8.__)("Search", "elementor"),
|
|
1789
1981
|
onChange: handleSearch,
|
|
1790
1982
|
InputProps: {
|
|
1791
|
-
startAdornment: /* @__PURE__ */
|
|
1983
|
+
startAdornment: /* @__PURE__ */ React34.createElement(import_ui27.InputAdornment, { position: "start" }, /* @__PURE__ */ React34.createElement(import_icons7.SearchIcon, { fontSize: SIZE2 }))
|
|
1792
1984
|
}
|
|
1793
1985
|
}
|
|
1794
|
-
)), /* @__PURE__ */
|
|
1986
|
+
)), /* @__PURE__ */ React34.createElement(import_ui27.Divider, null), filteredFontFamilies.length > 0 ? /* @__PURE__ */ React34.createElement(
|
|
1795
1987
|
FontList,
|
|
1796
1988
|
{
|
|
1797
1989
|
fontListItems: filteredFontFamilies,
|
|
@@ -1799,8 +1991,8 @@ var FontFamilySelector = ({
|
|
|
1799
1991
|
handleClose,
|
|
1800
1992
|
fontFamily
|
|
1801
1993
|
}
|
|
1802
|
-
) : /* @__PURE__ */
|
|
1803
|
-
|
|
1994
|
+
) : /* @__PURE__ */ React34.createElement(import_ui27.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, /* @__PURE__ */ React34.createElement(import_ui27.Stack, { alignItems: "center", p: 2.5, gap: 1.5, overflow: "hidden" }, /* @__PURE__ */ React34.createElement(import_icons7.TextIcon, { fontSize: "large" }), /* @__PURE__ */ React34.createElement(import_ui27.Box, { sx: { maxWidth: 160, overflow: "hidden" } }, /* @__PURE__ */ React34.createElement(import_ui27.Typography, { align: "center", variant: "subtitle2", color: "text.secondary" }, (0, import_i18n8.__)("Sorry, nothing matched", "elementor")), /* @__PURE__ */ React34.createElement(
|
|
1995
|
+
import_ui27.Typography,
|
|
1804
1996
|
{
|
|
1805
1997
|
variant: "subtitle2",
|
|
1806
1998
|
color: "text.secondary",
|
|
@@ -1810,11 +2002,11 @@ var FontFamilySelector = ({
|
|
|
1810
2002
|
justifyContent: "center"
|
|
1811
2003
|
}
|
|
1812
2004
|
},
|
|
1813
|
-
/* @__PURE__ */
|
|
1814
|
-
/* @__PURE__ */
|
|
1815
|
-
/* @__PURE__ */
|
|
1816
|
-
)), /* @__PURE__ */
|
|
1817
|
-
|
|
2005
|
+
/* @__PURE__ */ React34.createElement("span", null, "\u201C"),
|
|
2006
|
+
/* @__PURE__ */ React34.createElement("span", { style: { maxWidth: "80%", overflow: "hidden", textOverflow: "ellipsis" } }, searchValue),
|
|
2007
|
+
/* @__PURE__ */ React34.createElement("span", null, "\u201D.")
|
|
2008
|
+
)), /* @__PURE__ */ React34.createElement(import_ui27.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n8.__)("Try something else.", "elementor"), /* @__PURE__ */ React34.createElement(
|
|
2009
|
+
import_ui27.Link,
|
|
1818
2010
|
{
|
|
1819
2011
|
color: "secondary",
|
|
1820
2012
|
variant: "caption",
|
|
@@ -1827,7 +2019,7 @@ var FontFamilySelector = ({
|
|
|
1827
2019
|
var LIST_ITEM_HEIGHT = 36;
|
|
1828
2020
|
var LIST_ITEMS_BUFFER = 6;
|
|
1829
2021
|
var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
1830
|
-
const containerRef = (0,
|
|
2022
|
+
const containerRef = (0, import_react19.useRef)(null);
|
|
1831
2023
|
const selectedItem = fontListItems.find((item) => item.value === fontFamily);
|
|
1832
2024
|
const debouncedVirtualizeChange = useDebounce(({ getVirtualIndexes }) => {
|
|
1833
2025
|
getVirtualIndexes().forEach((index) => {
|
|
@@ -1844,7 +2036,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1844
2036
|
overscan: LIST_ITEMS_BUFFER,
|
|
1845
2037
|
onChange: debouncedVirtualizeChange
|
|
1846
2038
|
});
|
|
1847
|
-
(0,
|
|
2039
|
+
(0, import_react19.useEffect)(
|
|
1848
2040
|
() => {
|
|
1849
2041
|
virtualizer.scrollToIndex(fontListItems.findIndex((item) => item.value === fontFamily));
|
|
1850
2042
|
},
|
|
@@ -1852,8 +2044,8 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1852
2044
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1853
2045
|
[fontFamily]
|
|
1854
2046
|
);
|
|
1855
|
-
return /* @__PURE__ */
|
|
1856
|
-
|
|
2047
|
+
return /* @__PURE__ */ React34.createElement(
|
|
2048
|
+
import_ui27.Box,
|
|
1857
2049
|
{
|
|
1858
2050
|
ref: containerRef,
|
|
1859
2051
|
sx: {
|
|
@@ -1862,7 +2054,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1862
2054
|
width: 220
|
|
1863
2055
|
}
|
|
1864
2056
|
},
|
|
1865
|
-
/* @__PURE__ */
|
|
2057
|
+
/* @__PURE__ */ React34.createElement(
|
|
1866
2058
|
StyledMenuList,
|
|
1867
2059
|
{
|
|
1868
2060
|
role: "listbox",
|
|
@@ -1878,8 +2070,8 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1878
2070
|
const isSelected = selectedItem?.value === item.value;
|
|
1879
2071
|
const tabIndexFallback = !selectedItem ? 0 : -1;
|
|
1880
2072
|
if (item.type === "category") {
|
|
1881
|
-
return /* @__PURE__ */
|
|
1882
|
-
|
|
2073
|
+
return /* @__PURE__ */ React34.createElement(
|
|
2074
|
+
import_ui27.MenuSubheader,
|
|
1883
2075
|
{
|
|
1884
2076
|
key: virtualRow.key,
|
|
1885
2077
|
style: {
|
|
@@ -1889,7 +2081,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1889
2081
|
item.value
|
|
1890
2082
|
);
|
|
1891
2083
|
}
|
|
1892
|
-
return /* @__PURE__ */
|
|
2084
|
+
return /* @__PURE__ */ React34.createElement(
|
|
1893
2085
|
"li",
|
|
1894
2086
|
{
|
|
1895
2087
|
key: virtualRow.key,
|
|
@@ -1925,7 +2117,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1925
2117
|
)
|
|
1926
2118
|
);
|
|
1927
2119
|
};
|
|
1928
|
-
var StyledMenuList = (0,
|
|
2120
|
+
var StyledMenuList = (0, import_ui27.styled)(import_ui27.MenuList)(({ theme }) => ({
|
|
1929
2121
|
"& > li": {
|
|
1930
2122
|
height: LIST_ITEM_HEIGHT,
|
|
1931
2123
|
position: "absolute",
|
|
@@ -1952,8 +2144,8 @@ var StyledMenuList = (0, import_ui25.styled)(import_ui25.MenuList)(({ theme }) =
|
|
|
1952
2144
|
position: "relative"
|
|
1953
2145
|
}));
|
|
1954
2146
|
var useDebounce = (fn, delay) => {
|
|
1955
|
-
const [debouncedFn] = (0,
|
|
1956
|
-
(0,
|
|
2147
|
+
const [debouncedFn] = (0, import_react19.useState)(() => (0, import_utils2.debounce)(fn, delay));
|
|
2148
|
+
(0, import_react19.useEffect)(() => () => debouncedFn.cancel(), [debouncedFn]);
|
|
1957
2149
|
return debouncedFn;
|
|
1958
2150
|
};
|
|
1959
2151
|
|
|
@@ -1961,26 +2153,26 @@ var useDebounce = (fn, delay) => {
|
|
|
1961
2153
|
var SIZE3 = "tiny";
|
|
1962
2154
|
var FontFamilyControl = createControl(({ fontFamilies }) => {
|
|
1963
2155
|
const { value: fontFamily, setValue: setFontFamily, disabled } = useBoundProp(import_editor_props14.stringPropTypeUtil);
|
|
1964
|
-
const popoverState = (0,
|
|
1965
|
-
return /* @__PURE__ */
|
|
1966
|
-
|
|
2156
|
+
const popoverState = (0, import_ui28.usePopupState)({ variant: "popover" });
|
|
2157
|
+
return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(ControlActions, null, /* @__PURE__ */ React35.createElement(
|
|
2158
|
+
import_ui28.UnstableTag,
|
|
1967
2159
|
{
|
|
1968
2160
|
variant: "outlined",
|
|
1969
2161
|
label: fontFamily,
|
|
1970
|
-
endIcon: /* @__PURE__ */
|
|
1971
|
-
...(0,
|
|
2162
|
+
endIcon: /* @__PURE__ */ React35.createElement(import_icons8.ChevronDownIcon, { fontSize: SIZE3 }),
|
|
2163
|
+
...(0, import_ui28.bindTrigger)(popoverState),
|
|
1972
2164
|
fullWidth: true,
|
|
1973
2165
|
disabled
|
|
1974
2166
|
}
|
|
1975
|
-
)), /* @__PURE__ */
|
|
1976
|
-
|
|
2167
|
+
)), /* @__PURE__ */ React35.createElement(
|
|
2168
|
+
import_ui28.Popover,
|
|
1977
2169
|
{
|
|
1978
2170
|
disablePortal: true,
|
|
1979
2171
|
disableScrollLock: true,
|
|
1980
2172
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
1981
|
-
...(0,
|
|
2173
|
+
...(0, import_ui28.bindPopover)(popoverState)
|
|
1982
2174
|
},
|
|
1983
|
-
/* @__PURE__ */
|
|
2175
|
+
/* @__PURE__ */ React35.createElement(
|
|
1984
2176
|
FontFamilySelector,
|
|
1985
2177
|
{
|
|
1986
2178
|
fontFamilies,
|
|
@@ -1993,14 +2185,14 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
|
|
|
1993
2185
|
});
|
|
1994
2186
|
|
|
1995
2187
|
// src/controls/url-control.tsx
|
|
1996
|
-
var
|
|
2188
|
+
var React36 = __toESM(require("react"));
|
|
1997
2189
|
var import_editor_props15 = require("@elementor/editor-props");
|
|
1998
|
-
var
|
|
2190
|
+
var import_ui29 = require("@elementor/ui");
|
|
1999
2191
|
var UrlControl = createControl(({ placeholder }) => {
|
|
2000
2192
|
const { value, setValue, disabled } = useBoundProp(import_editor_props15.urlPropTypeUtil);
|
|
2001
2193
|
const handleChange = (event) => setValue(event.target.value);
|
|
2002
|
-
return /* @__PURE__ */
|
|
2003
|
-
|
|
2194
|
+
return /* @__PURE__ */ React36.createElement(ControlActions, null, /* @__PURE__ */ React36.createElement(
|
|
2195
|
+
import_ui29.TextField,
|
|
2004
2196
|
{
|
|
2005
2197
|
size: "tiny",
|
|
2006
2198
|
fullWidth: true,
|
|
@@ -2013,24 +2205,24 @@ var UrlControl = createControl(({ placeholder }) => {
|
|
|
2013
2205
|
});
|
|
2014
2206
|
|
|
2015
2207
|
// src/controls/link-control.tsx
|
|
2016
|
-
var
|
|
2017
|
-
var
|
|
2208
|
+
var React38 = __toESM(require("react"));
|
|
2209
|
+
var import_react21 = require("react");
|
|
2018
2210
|
var import_editor_elements = require("@elementor/editor-elements");
|
|
2019
2211
|
var import_editor_props16 = require("@elementor/editor-props");
|
|
2020
2212
|
var import_editor_ui4 = require("@elementor/editor-ui");
|
|
2021
2213
|
var import_http_client2 = require("@elementor/http-client");
|
|
2022
|
-
var
|
|
2214
|
+
var import_icons10 = require("@elementor/icons");
|
|
2023
2215
|
var import_session = require("@elementor/session");
|
|
2024
|
-
var
|
|
2216
|
+
var import_ui31 = require("@elementor/ui");
|
|
2025
2217
|
var import_utils3 = require("@elementor/utils");
|
|
2026
2218
|
var import_i18n9 = require("@wordpress/i18n");
|
|
2027
2219
|
|
|
2028
2220
|
// src/components/autocomplete.tsx
|
|
2029
|
-
var
|
|
2030
|
-
var
|
|
2031
|
-
var
|
|
2032
|
-
var
|
|
2033
|
-
var Autocomplete = (0,
|
|
2221
|
+
var React37 = __toESM(require("react"));
|
|
2222
|
+
var import_react20 = require("react");
|
|
2223
|
+
var import_icons9 = require("@elementor/icons");
|
|
2224
|
+
var import_ui30 = require("@elementor/ui");
|
|
2225
|
+
var Autocomplete = (0, import_react20.forwardRef)((props, ref) => {
|
|
2034
2226
|
const {
|
|
2035
2227
|
options,
|
|
2036
2228
|
onOptionChange,
|
|
@@ -2046,8 +2238,8 @@ var Autocomplete = (0, import_react14.forwardRef)((props, ref) => {
|
|
|
2046
2238
|
const muiWarningPreventer = allowCustomValues || !!value?.toString()?.length;
|
|
2047
2239
|
const isOptionEqualToValue = muiWarningPreventer ? void 0 : () => true;
|
|
2048
2240
|
const isValueFromOptions = typeof value === "number" && !!findMatchingOption(options, value);
|
|
2049
|
-
return /* @__PURE__ */
|
|
2050
|
-
|
|
2241
|
+
return /* @__PURE__ */ React37.createElement(
|
|
2242
|
+
import_ui30.Autocomplete,
|
|
2051
2243
|
{
|
|
2052
2244
|
...restProps,
|
|
2053
2245
|
ref,
|
|
@@ -2064,8 +2256,8 @@ var Autocomplete = (0, import_react14.forwardRef)((props, ref) => {
|
|
|
2064
2256
|
groupBy: isCategorizedOptionPool(options) ? (optionId) => findMatchingOption(options, optionId)?.groupLabel || optionId : void 0,
|
|
2065
2257
|
isOptionEqualToValue,
|
|
2066
2258
|
filterOptions: () => optionKeys,
|
|
2067
|
-
renderOption: (optionProps, optionId) => /* @__PURE__ */
|
|
2068
|
-
renderInput: (params) => /* @__PURE__ */
|
|
2259
|
+
renderOption: (optionProps, optionId) => /* @__PURE__ */ React37.createElement(import_ui30.Box, { component: "li", ...optionProps, key: optionProps.id }, findMatchingOption(options, optionId)?.label ?? optionId),
|
|
2260
|
+
renderInput: (params) => /* @__PURE__ */ React37.createElement(
|
|
2069
2261
|
TextInput,
|
|
2070
2262
|
{
|
|
2071
2263
|
params,
|
|
@@ -2088,8 +2280,8 @@ var TextInput = ({
|
|
|
2088
2280
|
const onChange = (event) => {
|
|
2089
2281
|
handleChange(event.target.value);
|
|
2090
2282
|
};
|
|
2091
|
-
return /* @__PURE__ */
|
|
2092
|
-
|
|
2283
|
+
return /* @__PURE__ */ React37.createElement(
|
|
2284
|
+
import_ui30.TextField,
|
|
2093
2285
|
{
|
|
2094
2286
|
...params,
|
|
2095
2287
|
placeholder,
|
|
@@ -2101,7 +2293,7 @@ var TextInput = ({
|
|
|
2101
2293
|
},
|
|
2102
2294
|
InputProps: {
|
|
2103
2295
|
...params.InputProps,
|
|
2104
|
-
endAdornment: /* @__PURE__ */
|
|
2296
|
+
endAdornment: /* @__PURE__ */ React37.createElement(ClearButton, { params, allowClear, handleChange })
|
|
2105
2297
|
}
|
|
2106
2298
|
}
|
|
2107
2299
|
);
|
|
@@ -2110,7 +2302,7 @@ var ClearButton = ({
|
|
|
2110
2302
|
allowClear,
|
|
2111
2303
|
handleChange,
|
|
2112
2304
|
params
|
|
2113
|
-
}) => /* @__PURE__ */
|
|
2305
|
+
}) => /* @__PURE__ */ React37.createElement(import_ui30.InputAdornment, { position: "end" }, allowClear && /* @__PURE__ */ React37.createElement(import_ui30.IconButton, { size: params.size, onClick: () => handleChange(null), sx: { cursor: "pointer" } }, /* @__PURE__ */ React37.createElement(import_icons9.XIcon, { fontSize: params.size })));
|
|
2114
2306
|
function findMatchingOption(options, optionId = null) {
|
|
2115
2307
|
const formattedOption = (optionId || "").toString();
|
|
2116
2308
|
return options.find(({ id }) => formattedOption === id.toString());
|
|
@@ -2140,7 +2332,7 @@ var learnMoreButton = {
|
|
|
2140
2332
|
var LinkControl = createControl((props) => {
|
|
2141
2333
|
const { value, path, setValue, ...propContext } = useBoundProp(import_editor_props16.linkPropTypeUtil);
|
|
2142
2334
|
const [linkSessionValue, setLinkSessionValue] = (0, import_session.useSessionStorage)(path.join("/"));
|
|
2143
|
-
const [isActive, setIsActive] = (0,
|
|
2335
|
+
const [isActive, setIsActive] = (0, import_react21.useState)(!!value);
|
|
2144
2336
|
const {
|
|
2145
2337
|
allowCustomValues,
|
|
2146
2338
|
queryOptions: { endpoint = "", requestParams = {} },
|
|
@@ -2148,8 +2340,8 @@ var LinkControl = createControl((props) => {
|
|
|
2148
2340
|
minInputLength = 2,
|
|
2149
2341
|
context: { elementId }
|
|
2150
2342
|
} = props || {};
|
|
2151
|
-
const [linkInLinkRestriction, setLinkInLinkRestriction] = (0,
|
|
2152
|
-
const [options, setOptions] = (0,
|
|
2343
|
+
const [linkInLinkRestriction, setLinkInLinkRestriction] = (0, import_react21.useState)((0, import_editor_elements.getLinkInLinkRestriction)(elementId));
|
|
2344
|
+
const [options, setOptions] = (0, import_react21.useState)(
|
|
2153
2345
|
generateFirstLoadedOption(value)
|
|
2154
2346
|
);
|
|
2155
2347
|
const shouldDisableAddingLink = !isActive && linkInLinkRestriction.shouldRestrict;
|
|
@@ -2200,7 +2392,7 @@ var LinkControl = createControl((props) => {
|
|
|
2200
2392
|
}
|
|
2201
2393
|
debounceFetch({ ...requestParams, term: newValue });
|
|
2202
2394
|
};
|
|
2203
|
-
const debounceFetch = (0,
|
|
2395
|
+
const debounceFetch = (0, import_react21.useMemo)(
|
|
2204
2396
|
() => (0, import_utils3.debounce)(
|
|
2205
2397
|
(params) => fetchOptions(endpoint, params).then((newOptions) => {
|
|
2206
2398
|
setOptions(formatOptions(newOptions));
|
|
@@ -2209,8 +2401,8 @@ var LinkControl = createControl((props) => {
|
|
|
2209
2401
|
),
|
|
2210
2402
|
[endpoint]
|
|
2211
2403
|
);
|
|
2212
|
-
return /* @__PURE__ */
|
|
2213
|
-
|
|
2404
|
+
return /* @__PURE__ */ React38.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React38.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React38.createElement(
|
|
2405
|
+
import_ui31.Stack,
|
|
2214
2406
|
{
|
|
2215
2407
|
direction: "row",
|
|
2216
2408
|
sx: {
|
|
@@ -2219,8 +2411,8 @@ var LinkControl = createControl((props) => {
|
|
|
2219
2411
|
marginInlineEnd: -0.75
|
|
2220
2412
|
}
|
|
2221
2413
|
},
|
|
2222
|
-
/* @__PURE__ */
|
|
2223
|
-
/* @__PURE__ */
|
|
2414
|
+
/* @__PURE__ */ React38.createElement(ControlFormLabel, null, (0, import_i18n9.__)("Link", "elementor")),
|
|
2415
|
+
/* @__PURE__ */ React38.createElement(ConditionalInfoTip, { isVisible: !isActive, linkInLinkRestriction }, /* @__PURE__ */ React38.createElement(
|
|
2224
2416
|
ToggleIconControl,
|
|
2225
2417
|
{
|
|
2226
2418
|
disabled: shouldDisableAddingLink,
|
|
@@ -2229,7 +2421,7 @@ var LinkControl = createControl((props) => {
|
|
|
2229
2421
|
label: (0, import_i18n9.__)("Toggle link", "elementor")
|
|
2230
2422
|
}
|
|
2231
2423
|
))
|
|
2232
|
-
), /* @__PURE__ */
|
|
2424
|
+
), /* @__PURE__ */ React38.createElement(import_ui31.Collapse, { in: isActive, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React38.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "destination" }, /* @__PURE__ */ React38.createElement(ControlActions, null, /* @__PURE__ */ React38.createElement(
|
|
2233
2425
|
Autocomplete,
|
|
2234
2426
|
{
|
|
2235
2427
|
options,
|
|
@@ -2240,10 +2432,10 @@ var LinkControl = createControl((props) => {
|
|
|
2240
2432
|
onTextChange,
|
|
2241
2433
|
minInputLength
|
|
2242
2434
|
}
|
|
2243
|
-
))), /* @__PURE__ */
|
|
2435
|
+
))), /* @__PURE__ */ React38.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React38.createElement(SwitchControl, { disabled: propContext.disabled || !value }))))));
|
|
2244
2436
|
});
|
|
2245
2437
|
var ToggleIconControl = ({ disabled, active, onIconClick, label }) => {
|
|
2246
|
-
return /* @__PURE__ */
|
|
2438
|
+
return /* @__PURE__ */ React38.createElement(import_ui31.IconButton, { size: SIZE4, onClick: onIconClick, "aria-label": label, disabled }, active ? /* @__PURE__ */ React38.createElement(import_icons10.MinusIcon, { fontSize: SIZE4 }) : /* @__PURE__ */ React38.createElement(import_icons10.PlusIcon, { fontSize: SIZE4 }));
|
|
2247
2439
|
};
|
|
2248
2440
|
var SwitchControl = ({ disabled }) => {
|
|
2249
2441
|
const { value = false, setValue } = useBoundProp(import_editor_props16.booleanPropTypeUtil);
|
|
@@ -2255,7 +2447,7 @@ var SwitchControl = ({ disabled }) => {
|
|
|
2255
2447
|
opacity: 0
|
|
2256
2448
|
}
|
|
2257
2449
|
} : {};
|
|
2258
|
-
return /* @__PURE__ */
|
|
2450
|
+
return /* @__PURE__ */ React38.createElement(import_ui31.Grid, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true }, /* @__PURE__ */ React38.createElement(ControlFormLabel, null, (0, import_i18n9.__)("Open in a new tab", "elementor"))), /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true, sx: { marginInlineEnd: -1 } }, /* @__PURE__ */ React38.createElement(import_ui31.Switch, { checked: value, onClick, disabled, inputProps })));
|
|
2259
2451
|
};
|
|
2260
2452
|
async function fetchOptions(ajaxUrl, params) {
|
|
2261
2453
|
if (!params || !ajaxUrl) {
|
|
@@ -2292,15 +2484,15 @@ var ConditionalInfoTip = ({ linkInLinkRestriction, isVisible, children }) => {
|
|
|
2292
2484
|
(0, import_editor_elements.selectElement)(elementId);
|
|
2293
2485
|
}
|
|
2294
2486
|
};
|
|
2295
|
-
return shouldRestrict && isVisible ? /* @__PURE__ */
|
|
2296
|
-
|
|
2487
|
+
return shouldRestrict && isVisible ? /* @__PURE__ */ React38.createElement(
|
|
2488
|
+
import_ui31.Infotip,
|
|
2297
2489
|
{
|
|
2298
2490
|
placement: "right",
|
|
2299
|
-
content: /* @__PURE__ */
|
|
2491
|
+
content: /* @__PURE__ */ React38.createElement(
|
|
2300
2492
|
import_editor_ui4.InfoTipCard,
|
|
2301
2493
|
{
|
|
2302
2494
|
content: INFOTIP_CONTENT[reason],
|
|
2303
|
-
svgIcon: /* @__PURE__ */
|
|
2495
|
+
svgIcon: /* @__PURE__ */ React38.createElement(import_icons10.AlertTriangleIcon, null),
|
|
2304
2496
|
learnMoreButton,
|
|
2305
2497
|
ctaButton: {
|
|
2306
2498
|
label: (0, import_i18n9.__)("Take me there", "elementor"),
|
|
@@ -2309,19 +2501,20 @@ var ConditionalInfoTip = ({ linkInLinkRestriction, isVisible, children }) => {
|
|
|
2309
2501
|
}
|
|
2310
2502
|
)
|
|
2311
2503
|
},
|
|
2312
|
-
/* @__PURE__ */
|
|
2313
|
-
) : /* @__PURE__ */
|
|
2504
|
+
/* @__PURE__ */ React38.createElement(import_ui31.Box, null, children)
|
|
2505
|
+
) : /* @__PURE__ */ React38.createElement(React38.Fragment, null, children);
|
|
2314
2506
|
};
|
|
2315
2507
|
var INFOTIP_CONTENT = {
|
|
2316
|
-
descendant: /* @__PURE__ */
|
|
2317
|
-
ancestor: /* @__PURE__ */
|
|
2508
|
+
descendant: /* @__PURE__ */ React38.createElement(React38.Fragment, null, (0, import_i18n9.__)("To add a link to this container,", "elementor"), /* @__PURE__ */ React38.createElement("br", null), (0, import_i18n9.__)("first remove the link from the elements inside of it.", "elementor")),
|
|
2509
|
+
ancestor: /* @__PURE__ */ React38.createElement(React38.Fragment, null, (0, import_i18n9.__)("To add a link to this element,", "elementor"), /* @__PURE__ */ React38.createElement("br", null), (0, import_i18n9.__)("first remove the link from its parent container.", "elementor"))
|
|
2318
2510
|
};
|
|
2319
2511
|
|
|
2320
2512
|
// src/controls/gap-control.tsx
|
|
2321
|
-
var
|
|
2513
|
+
var React39 = __toESM(require("react"));
|
|
2514
|
+
var import_react22 = require("react");
|
|
2322
2515
|
var import_editor_props17 = require("@elementor/editor-props");
|
|
2323
|
-
var
|
|
2324
|
-
var
|
|
2516
|
+
var import_icons11 = require("@elementor/icons");
|
|
2517
|
+
var import_ui32 = require("@elementor/ui");
|
|
2325
2518
|
var import_i18n10 = require("@wordpress/i18n");
|
|
2326
2519
|
var GapControl = createControl(({ label }) => {
|
|
2327
2520
|
const {
|
|
@@ -2330,6 +2523,7 @@ var GapControl = createControl(({ label }) => {
|
|
|
2330
2523
|
propType,
|
|
2331
2524
|
disabled: directionDisabled
|
|
2332
2525
|
} = useBoundProp(import_editor_props17.layoutDirectionPropTypeUtil);
|
|
2526
|
+
const stackRef = (0, import_react22.useRef)();
|
|
2333
2527
|
const { value: sizeValue, setValue: setSizeValue, disabled: sizeDisabled } = useBoundProp(import_editor_props17.sizePropTypeUtil);
|
|
2334
2528
|
const isLinked = !directionValue && !sizeValue ? true : !!sizeValue;
|
|
2335
2529
|
const onLinkToggle = () => {
|
|
@@ -2344,12 +2538,12 @@ var GapControl = createControl(({ label }) => {
|
|
|
2344
2538
|
});
|
|
2345
2539
|
};
|
|
2346
2540
|
const tooltipLabel = label.toLowerCase();
|
|
2347
|
-
const LinkedIcon = isLinked ?
|
|
2541
|
+
const LinkedIcon = isLinked ? import_icons11.LinkIcon : import_icons11.DetachIcon;
|
|
2348
2542
|
const linkedLabel = (0, import_i18n10.__)("Link %s", "elementor").replace("%s", tooltipLabel);
|
|
2349
2543
|
const unlinkedLabel = (0, import_i18n10.__)("Unlink %s", "elementor").replace("%s", tooltipLabel);
|
|
2350
2544
|
const disabled = sizeDisabled || directionDisabled;
|
|
2351
|
-
return /* @__PURE__ */
|
|
2352
|
-
|
|
2545
|
+
return /* @__PURE__ */ React39.createElement(PropProvider, { propType, value: directionValue, setValue: setDirectionValue }, /* @__PURE__ */ React39.createElement(import_ui32.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(ControlLabel, null, label), /* @__PURE__ */ React39.createElement(import_ui32.Tooltip, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React39.createElement(
|
|
2546
|
+
import_ui32.ToggleButton,
|
|
2353
2547
|
{
|
|
2354
2548
|
"aria-label": isLinked ? unlinkedLabel : linkedLabel,
|
|
2355
2549
|
size: "tiny",
|
|
@@ -2359,23 +2553,27 @@ var GapControl = createControl(({ label }) => {
|
|
|
2359
2553
|
onChange: onLinkToggle,
|
|
2360
2554
|
disabled
|
|
2361
2555
|
},
|
|
2362
|
-
/* @__PURE__ */
|
|
2363
|
-
))), /* @__PURE__ */
|
|
2556
|
+
/* @__PURE__ */ React39.createElement(LinkedIcon, { fontSize: "tiny" })
|
|
2557
|
+
))), /* @__PURE__ */ React39.createElement(import_ui32.Stack, { direction: "row", gap: 2, flexWrap: "nowrap", ref: stackRef }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(ControlFormLabel, null, (0, import_i18n10.__)("Column", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(Control4, { bind: "column", isLinked, anchorRef: stackRef }))), /* @__PURE__ */ React39.createElement(import_ui32.Grid, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(ControlFormLabel, null, (0, import_i18n10.__)("Row", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(Control4, { bind: "row", isLinked, anchorRef: stackRef })))));
|
|
2364
2558
|
});
|
|
2365
|
-
var Control4 = ({
|
|
2559
|
+
var Control4 = ({
|
|
2560
|
+
bind,
|
|
2561
|
+
isLinked,
|
|
2562
|
+
anchorRef
|
|
2563
|
+
}) => {
|
|
2366
2564
|
if (isLinked) {
|
|
2367
|
-
return /* @__PURE__ */
|
|
2565
|
+
return /* @__PURE__ */ React39.createElement(SizeControl, { anchorRef });
|
|
2368
2566
|
}
|
|
2369
|
-
return /* @__PURE__ */
|
|
2567
|
+
return /* @__PURE__ */ React39.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React39.createElement(SizeControl, { anchorRef }));
|
|
2370
2568
|
};
|
|
2371
2569
|
|
|
2372
2570
|
// src/controls/aspect-ratio-control.tsx
|
|
2373
|
-
var
|
|
2374
|
-
var
|
|
2571
|
+
var React40 = __toESM(require("react"));
|
|
2572
|
+
var import_react23 = require("react");
|
|
2375
2573
|
var import_editor_props18 = require("@elementor/editor-props");
|
|
2376
2574
|
var import_editor_ui5 = require("@elementor/editor-ui");
|
|
2377
|
-
var
|
|
2378
|
-
var
|
|
2575
|
+
var import_icons12 = require("@elementor/icons");
|
|
2576
|
+
var import_ui33 = require("@elementor/ui");
|
|
2379
2577
|
var import_i18n11 = require("@wordpress/i18n");
|
|
2380
2578
|
var RATIO_OPTIONS = [
|
|
2381
2579
|
{ label: (0, import_i18n11.__)("Auto", "elementor"), value: "auto" },
|
|
@@ -2392,10 +2590,10 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2392
2590
|
const { value: aspectRatioValue, setValue: setAspectRatioValue, disabled } = useBoundProp(import_editor_props18.stringPropTypeUtil);
|
|
2393
2591
|
const isCustomSelected = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
|
|
2394
2592
|
const [initialWidth, initialHeight] = isCustomSelected ? aspectRatioValue.split("/") : ["", ""];
|
|
2395
|
-
const [isCustom, setIsCustom] = (0,
|
|
2396
|
-
const [customWidth, setCustomWidth] = (0,
|
|
2397
|
-
const [customHeight, setCustomHeight] = (0,
|
|
2398
|
-
const [selectedValue, setSelectedValue] = (0,
|
|
2593
|
+
const [isCustom, setIsCustom] = (0, import_react23.useState)(isCustomSelected);
|
|
2594
|
+
const [customWidth, setCustomWidth] = (0, import_react23.useState)(initialWidth);
|
|
2595
|
+
const [customHeight, setCustomHeight] = (0, import_react23.useState)(initialHeight);
|
|
2596
|
+
const [selectedValue, setSelectedValue] = (0, import_react23.useState)(
|
|
2399
2597
|
isCustomSelected ? CUSTOM_RATIO : aspectRatioValue || ""
|
|
2400
2598
|
);
|
|
2401
2599
|
const handleSelectChange = (event) => {
|
|
@@ -2422,8 +2620,8 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2422
2620
|
setAspectRatioValue(`${customWidth}/${newHeight}`);
|
|
2423
2621
|
}
|
|
2424
2622
|
};
|
|
2425
|
-
return /* @__PURE__ */
|
|
2426
|
-
|
|
2623
|
+
return /* @__PURE__ */ React40.createElement(ControlActions, null, /* @__PURE__ */ React40.createElement(import_ui33.Stack, { direction: "column", pt: 2, gap: 2 }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, label)), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(
|
|
2624
|
+
import_ui33.Select,
|
|
2427
2625
|
{
|
|
2428
2626
|
size: "tiny",
|
|
2429
2627
|
displayEmpty: true,
|
|
@@ -2434,10 +2632,10 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2434
2632
|
fullWidth: true
|
|
2435
2633
|
},
|
|
2436
2634
|
[...RATIO_OPTIONS, { label: (0, import_i18n11.__)("Custom", "elementor"), value: CUSTOM_RATIO }].map(
|
|
2437
|
-
({ label: optionLabel, ...props }) => /* @__PURE__ */
|
|
2635
|
+
({ label: optionLabel, ...props }) => /* @__PURE__ */ React40.createElement(import_editor_ui5.MenuListItem, { key: props.value, ...props, value: props.value ?? "" }, optionLabel)
|
|
2438
2636
|
)
|
|
2439
|
-
))), isCustom && /* @__PURE__ */
|
|
2440
|
-
|
|
2637
|
+
))), isCustom && /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(
|
|
2638
|
+
import_ui33.TextField,
|
|
2441
2639
|
{
|
|
2442
2640
|
size: "tiny",
|
|
2443
2641
|
type: "number",
|
|
@@ -2446,11 +2644,11 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2446
2644
|
value: customWidth,
|
|
2447
2645
|
onChange: handleCustomWidthChange,
|
|
2448
2646
|
InputProps: {
|
|
2449
|
-
startAdornment: /* @__PURE__ */
|
|
2647
|
+
startAdornment: /* @__PURE__ */ React40.createElement(import_icons12.ArrowsMoveHorizontalIcon, { fontSize: "tiny" })
|
|
2450
2648
|
}
|
|
2451
2649
|
}
|
|
2452
|
-
)), /* @__PURE__ */
|
|
2453
|
-
|
|
2650
|
+
)), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(
|
|
2651
|
+
import_ui33.TextField,
|
|
2454
2652
|
{
|
|
2455
2653
|
size: "tiny",
|
|
2456
2654
|
type: "number",
|
|
@@ -2459,26 +2657,26 @@ var AspectRatioControl = createControl(({ label }) => {
|
|
|
2459
2657
|
value: customHeight,
|
|
2460
2658
|
onChange: handleCustomHeightChange,
|
|
2461
2659
|
InputProps: {
|
|
2462
|
-
startAdornment: /* @__PURE__ */
|
|
2660
|
+
startAdornment: /* @__PURE__ */ React40.createElement(import_icons12.ArrowsMoveVerticalIcon, { fontSize: "tiny" })
|
|
2463
2661
|
}
|
|
2464
2662
|
}
|
|
2465
2663
|
)))));
|
|
2466
2664
|
});
|
|
2467
2665
|
|
|
2468
2666
|
// src/controls/svg-media-control.tsx
|
|
2469
|
-
var
|
|
2470
|
-
var
|
|
2667
|
+
var React42 = __toESM(require("react"));
|
|
2668
|
+
var import_react25 = require("react");
|
|
2471
2669
|
var import_editor_props19 = require("@elementor/editor-props");
|
|
2472
|
-
var
|
|
2473
|
-
var
|
|
2670
|
+
var import_icons13 = require("@elementor/icons");
|
|
2671
|
+
var import_ui35 = require("@elementor/ui");
|
|
2474
2672
|
var import_wp_media2 = require("@elementor/wp-media");
|
|
2475
2673
|
var import_i18n13 = require("@wordpress/i18n");
|
|
2476
2674
|
|
|
2477
2675
|
// src/components/enable-unfiltered-modal.tsx
|
|
2478
|
-
var
|
|
2479
|
-
var
|
|
2676
|
+
var React41 = __toESM(require("react"));
|
|
2677
|
+
var import_react24 = require("react");
|
|
2480
2678
|
var import_editor_current_user = require("@elementor/editor-current-user");
|
|
2481
|
-
var
|
|
2679
|
+
var import_ui34 = require("@elementor/ui");
|
|
2482
2680
|
var import_i18n12 = require("@wordpress/i18n");
|
|
2483
2681
|
var ADMIN_TITLE_TEXT = (0, import_i18n12.__)("Enable Unfiltered Uploads", "elementor");
|
|
2484
2682
|
var ADMIN_CONTENT_TEXT = (0, import_i18n12.__)(
|
|
@@ -2499,7 +2697,7 @@ var WAIT_FOR_CLOSE_TIMEOUT_MS = 300;
|
|
|
2499
2697
|
var EnableUnfilteredModal = (props) => {
|
|
2500
2698
|
const { mutateAsync, isPending } = useUpdateUnfilteredFilesUpload();
|
|
2501
2699
|
const { canUser } = (0, import_editor_current_user.useCurrentUserCapabilities)();
|
|
2502
|
-
const [isError, setIsError] = (0,
|
|
2700
|
+
const [isError, setIsError] = (0, import_react24.useState)(false);
|
|
2503
2701
|
const canManageOptions = canUser("manage_options");
|
|
2504
2702
|
const onClose = (enabled) => {
|
|
2505
2703
|
props.onClose(enabled);
|
|
@@ -2518,10 +2716,10 @@ var EnableUnfilteredModal = (props) => {
|
|
|
2518
2716
|
}
|
|
2519
2717
|
};
|
|
2520
2718
|
const dialogProps = { ...props, isPending, handleEnable, isError, onClose };
|
|
2521
|
-
return canManageOptions ? /* @__PURE__ */
|
|
2719
|
+
return canManageOptions ? /* @__PURE__ */ React41.createElement(AdminDialog, { ...dialogProps }) : /* @__PURE__ */ React41.createElement(NonAdminDialog, { ...dialogProps });
|
|
2522
2720
|
};
|
|
2523
|
-
var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */
|
|
2524
|
-
|
|
2721
|
+
var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */ React41.createElement(import_ui34.Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React41.createElement(import_ui34.DialogHeader, { logo: false }, /* @__PURE__ */ React41.createElement(import_ui34.DialogTitle, null, ADMIN_TITLE_TEXT)), /* @__PURE__ */ React41.createElement(import_ui34.Divider, null), /* @__PURE__ */ React41.createElement(import_ui34.DialogContent, null, /* @__PURE__ */ React41.createElement(import_ui34.DialogContentText, null, isError ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, ADMIN_FAILED_CONTENT_TEXT_PT1, " ", /* @__PURE__ */ React41.createElement("br", null), " ", ADMIN_FAILED_CONTENT_TEXT_PT2) : ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React41.createElement(import_ui34.DialogActions, null, /* @__PURE__ */ React41.createElement(import_ui34.Button, { size: "medium", color: "secondary", onClick: () => onClose(false) }, (0, import_i18n12.__)("Cancel", "elementor")), /* @__PURE__ */ React41.createElement(
|
|
2722
|
+
import_ui34.Button,
|
|
2525
2723
|
{
|
|
2526
2724
|
size: "medium",
|
|
2527
2725
|
onClick: () => handleEnable(),
|
|
@@ -2529,16 +2727,16 @@ var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @_
|
|
|
2529
2727
|
color: "primary",
|
|
2530
2728
|
disabled: isPending
|
|
2531
2729
|
},
|
|
2532
|
-
isPending ? /* @__PURE__ */
|
|
2730
|
+
isPending ? /* @__PURE__ */ React41.createElement(import_ui34.CircularProgress, { size: 24 }) : (0, import_i18n12.__)("Enable", "elementor")
|
|
2533
2731
|
)));
|
|
2534
|
-
var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */
|
|
2732
|
+
var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */ React41.createElement(import_ui34.Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React41.createElement(import_ui34.DialogHeader, { logo: false }, /* @__PURE__ */ React41.createElement(import_ui34.DialogTitle, null, NON_ADMIN_TITLE_TEXT)), /* @__PURE__ */ React41.createElement(import_ui34.Divider, null), /* @__PURE__ */ React41.createElement(import_ui34.DialogContent, null, /* @__PURE__ */ React41.createElement(import_ui34.DialogContentText, null, NON_ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React41.createElement(import_ui34.DialogActions, null, /* @__PURE__ */ React41.createElement(import_ui34.Button, { size: "medium", onClick: () => onClose(false), variant: "contained", color: "primary" }, (0, import_i18n12.__)("Got it", "elementor"))));
|
|
2535
2733
|
|
|
2536
2734
|
// src/controls/svg-media-control.tsx
|
|
2537
2735
|
var TILE_SIZE = 8;
|
|
2538
2736
|
var TILE_WHITE = "transparent";
|
|
2539
2737
|
var TILE_BLACK = "#c1c1c1";
|
|
2540
2738
|
var TILES_GRADIENT_FORMULA = `linear-gradient(45deg, ${TILE_BLACK} 25%, ${TILE_WHITE} 0, ${TILE_WHITE} 75%, ${TILE_BLACK} 0, ${TILE_BLACK})`;
|
|
2541
|
-
var StyledCard = (0,
|
|
2739
|
+
var StyledCard = (0, import_ui35.styled)(import_ui35.Card)`
|
|
2542
2740
|
background-color: white;
|
|
2543
2741
|
background-image: ${TILES_GRADIENT_FORMULA}, ${TILES_GRADIENT_FORMULA};
|
|
2544
2742
|
background-size: ${TILE_SIZE}px ${TILE_SIZE}px;
|
|
@@ -2547,7 +2745,7 @@ var StyledCard = (0, import_ui33.styled)(import_ui33.Card)`
|
|
|
2547
2745
|
${TILE_SIZE / 2}px ${TILE_SIZE / 2}px;
|
|
2548
2746
|
border: none;
|
|
2549
2747
|
`;
|
|
2550
|
-
var StyledCardMediaContainer = (0,
|
|
2748
|
+
var StyledCardMediaContainer = (0, import_ui35.styled)(import_ui35.Stack)`
|
|
2551
2749
|
position: relative;
|
|
2552
2750
|
height: 140px;
|
|
2553
2751
|
object-fit: contain;
|
|
@@ -2564,7 +2762,7 @@ var SvgMediaControl = createControl(() => {
|
|
|
2564
2762
|
const { data: attachment, isFetching } = (0, import_wp_media2.useWpMediaAttachment)(id?.value || null);
|
|
2565
2763
|
const src = attachment?.url ?? url?.value ?? null;
|
|
2566
2764
|
const { data: allowSvgUpload } = useUnfilteredFilesUpload();
|
|
2567
|
-
const [unfilteredModalOpenState, setUnfilteredModalOpenState] = (0,
|
|
2765
|
+
const [unfilteredModalOpenState, setUnfilteredModalOpenState] = (0, import_react25.useState)(false);
|
|
2568
2766
|
const { open } = (0, import_wp_media2.useWpMediaFrame)({
|
|
2569
2767
|
mediaTypes: ["svg"],
|
|
2570
2768
|
multiple: false,
|
|
@@ -2592,16 +2790,16 @@ var SvgMediaControl = createControl(() => {
|
|
|
2592
2790
|
open(openOptions);
|
|
2593
2791
|
}
|
|
2594
2792
|
};
|
|
2595
|
-
return /* @__PURE__ */
|
|
2596
|
-
|
|
2793
|
+
return /* @__PURE__ */ React42.createElement(import_ui35.Stack, { gap: 1 }, /* @__PURE__ */ React42.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: onCloseUnfilteredModal }), /* @__PURE__ */ React42.createElement(ControlFormLabel, null, " ", (0, import_i18n13.__)("SVG", "elementor"), " "), /* @__PURE__ */ React42.createElement(ControlActions, null, /* @__PURE__ */ React42.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React42.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React42.createElement(import_ui35.CircularProgress, { role: "progressbar" }) : /* @__PURE__ */ React42.createElement(
|
|
2794
|
+
import_ui35.CardMedia,
|
|
2597
2795
|
{
|
|
2598
2796
|
component: "img",
|
|
2599
2797
|
image: src,
|
|
2600
2798
|
alt: (0, import_i18n13.__)("Preview SVG", "elementor"),
|
|
2601
2799
|
sx: { maxHeight: "140px", width: "50px" }
|
|
2602
2800
|
}
|
|
2603
|
-
)), /* @__PURE__ */
|
|
2604
|
-
|
|
2801
|
+
)), /* @__PURE__ */ React42.createElement(
|
|
2802
|
+
import_ui35.CardOverlay,
|
|
2605
2803
|
{
|
|
2606
2804
|
sx: {
|
|
2607
2805
|
"&:hover": {
|
|
@@ -2609,8 +2807,8 @@ var SvgMediaControl = createControl(() => {
|
|
|
2609
2807
|
}
|
|
2610
2808
|
}
|
|
2611
2809
|
},
|
|
2612
|
-
/* @__PURE__ */
|
|
2613
|
-
|
|
2810
|
+
/* @__PURE__ */ React42.createElement(import_ui35.Stack, { gap: 1 }, /* @__PURE__ */ React42.createElement(
|
|
2811
|
+
import_ui35.Button,
|
|
2614
2812
|
{
|
|
2615
2813
|
size: "tiny",
|
|
2616
2814
|
color: "inherit",
|
|
@@ -2618,13 +2816,13 @@ var SvgMediaControl = createControl(() => {
|
|
|
2618
2816
|
onClick: () => handleClick(MODE_BROWSE)
|
|
2619
2817
|
},
|
|
2620
2818
|
(0, import_i18n13.__)("Select SVG", "elementor")
|
|
2621
|
-
), /* @__PURE__ */
|
|
2622
|
-
|
|
2819
|
+
), /* @__PURE__ */ React42.createElement(
|
|
2820
|
+
import_ui35.Button,
|
|
2623
2821
|
{
|
|
2624
2822
|
size: "tiny",
|
|
2625
2823
|
variant: "text",
|
|
2626
2824
|
color: "inherit",
|
|
2627
|
-
startIcon: /* @__PURE__ */
|
|
2825
|
+
startIcon: /* @__PURE__ */ React42.createElement(import_icons13.UploadIcon, null),
|
|
2628
2826
|
onClick: () => handleClick(MODE_UPLOAD)
|
|
2629
2827
|
},
|
|
2630
2828
|
(0, import_i18n13.__)("Upload", "elementor")
|
|
@@ -2633,16 +2831,16 @@ var SvgMediaControl = createControl(() => {
|
|
|
2633
2831
|
});
|
|
2634
2832
|
|
|
2635
2833
|
// src/controls/background-control/background-control.tsx
|
|
2636
|
-
var
|
|
2834
|
+
var React49 = __toESM(require("react"));
|
|
2637
2835
|
var import_editor_props25 = require("@elementor/editor-props");
|
|
2638
|
-
var
|
|
2639
|
-
var
|
|
2836
|
+
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
2837
|
+
var import_ui43 = require("@elementor/ui");
|
|
2640
2838
|
var import_i18n19 = require("@wordpress/i18n");
|
|
2641
2839
|
|
|
2642
2840
|
// src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx
|
|
2643
|
-
var
|
|
2841
|
+
var React48 = __toESM(require("react"));
|
|
2644
2842
|
var import_editor_props24 = require("@elementor/editor-props");
|
|
2645
|
-
var
|
|
2843
|
+
var import_ui42 = require("@elementor/ui");
|
|
2646
2844
|
var import_wp_media3 = require("@elementor/wp-media");
|
|
2647
2845
|
var import_i18n18 = require("@wordpress/i18n");
|
|
2648
2846
|
|
|
@@ -2651,9 +2849,9 @@ var import_env = require("@elementor/env");
|
|
|
2651
2849
|
var { env } = (0, import_env.parseEnv)("@elementor/editor-controls");
|
|
2652
2850
|
|
|
2653
2851
|
// src/controls/background-control/background-gradient-color-control.tsx
|
|
2654
|
-
var
|
|
2852
|
+
var React43 = __toESM(require("react"));
|
|
2655
2853
|
var import_editor_props20 = require("@elementor/editor-props");
|
|
2656
|
-
var
|
|
2854
|
+
var import_ui36 = require("@elementor/ui");
|
|
2657
2855
|
var BackgroundGradientColorControl = createControl(() => {
|
|
2658
2856
|
const { value, setValue } = useBoundProp(import_editor_props20.backgroundGradientOverlayPropTypeUtil);
|
|
2659
2857
|
const handleChange = (newValue) => {
|
|
@@ -2691,8 +2889,8 @@ var BackgroundGradientColorControl = createControl(() => {
|
|
|
2691
2889
|
positions: positions?.value.split(" ")
|
|
2692
2890
|
};
|
|
2693
2891
|
};
|
|
2694
|
-
return /* @__PURE__ */
|
|
2695
|
-
|
|
2892
|
+
return /* @__PURE__ */ React43.createElement(ControlActions, null, /* @__PURE__ */ React43.createElement(
|
|
2893
|
+
import_ui36.UnstableGradientBox,
|
|
2696
2894
|
{
|
|
2697
2895
|
sx: { width: "auto", padding: 1.5 },
|
|
2698
2896
|
value: normalizeValue(),
|
|
@@ -2716,34 +2914,35 @@ var initialBackgroundGradientOverlay = import_editor_props20.backgroundGradientO
|
|
|
2716
2914
|
});
|
|
2717
2915
|
|
|
2718
2916
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx
|
|
2719
|
-
var
|
|
2720
|
-
var
|
|
2721
|
-
var
|
|
2917
|
+
var React44 = __toESM(require("react"));
|
|
2918
|
+
var import_icons14 = require("@elementor/icons");
|
|
2919
|
+
var import_ui37 = require("@elementor/ui");
|
|
2722
2920
|
var import_i18n14 = require("@wordpress/i18n");
|
|
2723
2921
|
var attachmentControlOptions = [
|
|
2724
2922
|
{
|
|
2725
2923
|
value: "fixed",
|
|
2726
2924
|
label: (0, import_i18n14.__)("Fixed", "elementor"),
|
|
2727
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2925
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons14.PinIcon, { fontSize: size }),
|
|
2728
2926
|
showTooltip: true
|
|
2729
2927
|
},
|
|
2730
2928
|
{
|
|
2731
2929
|
value: "scroll",
|
|
2732
2930
|
label: (0, import_i18n14.__)("Scroll", "elementor"),
|
|
2733
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2931
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons14.PinnedOffIcon, { fontSize: size }),
|
|
2734
2932
|
showTooltip: true
|
|
2735
2933
|
}
|
|
2736
2934
|
];
|
|
2737
2935
|
var BackgroundImageOverlayAttachment = () => {
|
|
2738
|
-
return /* @__PURE__ */
|
|
2936
|
+
return /* @__PURE__ */ React44.createElement(PopoverGridContainer, null, /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlFormLabel, null, (0, import_i18n14.__)("Attachment", "elementor"))), /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React44.createElement(ToggleControl, { options: attachmentControlOptions })));
|
|
2739
2937
|
};
|
|
2740
2938
|
|
|
2741
2939
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
|
|
2742
|
-
var
|
|
2940
|
+
var React45 = __toESM(require("react"));
|
|
2941
|
+
var import_react26 = require("react");
|
|
2743
2942
|
var import_editor_props21 = require("@elementor/editor-props");
|
|
2744
2943
|
var import_editor_ui6 = require("@elementor/editor-ui");
|
|
2745
|
-
var
|
|
2746
|
-
var
|
|
2944
|
+
var import_icons15 = require("@elementor/icons");
|
|
2945
|
+
var import_ui38 = require("@elementor/ui");
|
|
2747
2946
|
var import_i18n15 = require("@wordpress/i18n");
|
|
2748
2947
|
var backgroundPositionOptions = [
|
|
2749
2948
|
{ label: (0, import_i18n15.__)("Center center", "elementor"), value: "center center" },
|
|
@@ -2761,6 +2960,7 @@ var BackgroundImageOverlayPosition = () => {
|
|
|
2761
2960
|
const backgroundImageOffsetContext = useBoundProp(import_editor_props21.backgroundImagePositionOffsetPropTypeUtil);
|
|
2762
2961
|
const stringPropContext = useBoundProp(import_editor_props21.stringPropTypeUtil);
|
|
2763
2962
|
const isCustom = !!backgroundImageOffsetContext.value;
|
|
2963
|
+
const rowRef = (0, import_react26.useRef)();
|
|
2764
2964
|
const handlePositionChange = (event) => {
|
|
2765
2965
|
const value = event.target.value || null;
|
|
2766
2966
|
if (value === "custom") {
|
|
@@ -2769,8 +2969,8 @@ var BackgroundImageOverlayPosition = () => {
|
|
|
2769
2969
|
stringPropContext.setValue(value);
|
|
2770
2970
|
}
|
|
2771
2971
|
};
|
|
2772
|
-
return /* @__PURE__ */
|
|
2773
|
-
|
|
2972
|
+
return /* @__PURE__ */ React45.createElement(import_ui38.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(PopoverGridContainer, null, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlFormLabel, null, (0, import_i18n15.__)("Position", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React45.createElement(
|
|
2973
|
+
import_ui38.Select,
|
|
2774
2974
|
{
|
|
2775
2975
|
fullWidth: true,
|
|
2776
2976
|
size: "tiny",
|
|
@@ -2778,74 +2978,87 @@ var BackgroundImageOverlayPosition = () => {
|
|
|
2778
2978
|
disabled: stringPropContext.disabled,
|
|
2779
2979
|
value: (backgroundImageOffsetContext.value ? "custom" : stringPropContext.value) ?? ""
|
|
2780
2980
|
},
|
|
2781
|
-
backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */
|
|
2782
|
-
)))), isCustom ? /* @__PURE__ */
|
|
2981
|
+
backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React45.createElement(import_editor_ui6.MenuListItem, { key: value, value: value ?? "" }, label))
|
|
2982
|
+
)))), isCustom ? /* @__PURE__ */ React45.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { container: true, spacing: 1.5, ref: rowRef }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React45.createElement(
|
|
2983
|
+
SizeControl,
|
|
2984
|
+
{
|
|
2985
|
+
startIcon: /* @__PURE__ */ React45.createElement(import_icons15.LetterXIcon, { fontSize: "tiny" }),
|
|
2986
|
+
anchorRef: rowRef
|
|
2987
|
+
}
|
|
2988
|
+
))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React45.createElement(
|
|
2989
|
+
SizeControl,
|
|
2990
|
+
{
|
|
2991
|
+
startIcon: /* @__PURE__ */ React45.createElement(import_icons15.LetterYIcon, { fontSize: "tiny" }),
|
|
2992
|
+
anchorRef: rowRef
|
|
2993
|
+
}
|
|
2994
|
+
)))))) : null);
|
|
2783
2995
|
};
|
|
2784
2996
|
|
|
2785
2997
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx
|
|
2786
|
-
var
|
|
2787
|
-
var
|
|
2788
|
-
var
|
|
2998
|
+
var React46 = __toESM(require("react"));
|
|
2999
|
+
var import_icons16 = require("@elementor/icons");
|
|
3000
|
+
var import_ui39 = require("@elementor/ui");
|
|
2789
3001
|
var import_i18n16 = require("@wordpress/i18n");
|
|
2790
3002
|
var repeatControlOptions = [
|
|
2791
3003
|
{
|
|
2792
3004
|
value: "repeat",
|
|
2793
3005
|
label: (0, import_i18n16.__)("Repeat", "elementor"),
|
|
2794
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3006
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons16.GridDotsIcon, { fontSize: size }),
|
|
2795
3007
|
showTooltip: true
|
|
2796
3008
|
},
|
|
2797
3009
|
{
|
|
2798
3010
|
value: "repeat-x",
|
|
2799
3011
|
label: (0, import_i18n16.__)("Repeat-x", "elementor"),
|
|
2800
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3012
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons16.DotsHorizontalIcon, { fontSize: size }),
|
|
2801
3013
|
showTooltip: true
|
|
2802
3014
|
},
|
|
2803
3015
|
{
|
|
2804
3016
|
value: "repeat-y",
|
|
2805
3017
|
label: (0, import_i18n16.__)("Repeat-y", "elementor"),
|
|
2806
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3018
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons16.DotsVerticalIcon, { fontSize: size }),
|
|
2807
3019
|
showTooltip: true
|
|
2808
3020
|
},
|
|
2809
3021
|
{
|
|
2810
3022
|
value: "no-repeat",
|
|
2811
3023
|
label: (0, import_i18n16.__)("No-repeat", "elementor"),
|
|
2812
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3024
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons16.XIcon, { fontSize: size }),
|
|
2813
3025
|
showTooltip: true
|
|
2814
3026
|
}
|
|
2815
3027
|
];
|
|
2816
3028
|
var BackgroundImageOverlayRepeat = () => {
|
|
2817
|
-
return /* @__PURE__ */
|
|
3029
|
+
return /* @__PURE__ */ React46.createElement(PopoverGridContainer, null, /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlFormLabel, null, (0, import_i18n16.__)("Repeat", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React46.createElement(ToggleControl, { options: repeatControlOptions })));
|
|
2818
3030
|
};
|
|
2819
3031
|
|
|
2820
3032
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
|
|
2821
|
-
var
|
|
3033
|
+
var React47 = __toESM(require("react"));
|
|
3034
|
+
var import_react27 = require("react");
|
|
2822
3035
|
var import_editor_props22 = require("@elementor/editor-props");
|
|
2823
|
-
var
|
|
2824
|
-
var
|
|
3036
|
+
var import_icons17 = require("@elementor/icons");
|
|
3037
|
+
var import_ui40 = require("@elementor/ui");
|
|
2825
3038
|
var import_i18n17 = require("@wordpress/i18n");
|
|
2826
3039
|
var sizeControlOptions = [
|
|
2827
3040
|
{
|
|
2828
3041
|
value: "auto",
|
|
2829
3042
|
label: (0, import_i18n17.__)("Auto", "elementor"),
|
|
2830
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3043
|
+
renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(import_icons17.LetterAIcon, { fontSize: size }),
|
|
2831
3044
|
showTooltip: true
|
|
2832
3045
|
},
|
|
2833
3046
|
{
|
|
2834
3047
|
value: "cover",
|
|
2835
3048
|
label: (0, import_i18n17.__)("Cover", "elementor"),
|
|
2836
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3049
|
+
renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(import_icons17.ArrowsMaximizeIcon, { fontSize: size }),
|
|
2837
3050
|
showTooltip: true
|
|
2838
3051
|
},
|
|
2839
3052
|
{
|
|
2840
3053
|
value: "contain",
|
|
2841
3054
|
label: (0, import_i18n17.__)("Contain", "elementor"),
|
|
2842
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3055
|
+
renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(import_icons17.ArrowBarBothIcon, { fontSize: size }),
|
|
2843
3056
|
showTooltip: true
|
|
2844
3057
|
},
|
|
2845
3058
|
{
|
|
2846
3059
|
value: "custom",
|
|
2847
3060
|
label: (0, import_i18n17.__)("Custom", "elementor"),
|
|
2848
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3061
|
+
renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(import_icons17.PencilIcon, { fontSize: size }),
|
|
2849
3062
|
showTooltip: true
|
|
2850
3063
|
}
|
|
2851
3064
|
];
|
|
@@ -2853,6 +3066,7 @@ var BackgroundImageOverlaySize = () => {
|
|
|
2853
3066
|
const backgroundImageScaleContext = useBoundProp(import_editor_props22.backgroundImageSizeScalePropTypeUtil);
|
|
2854
3067
|
const stringPropContext = useBoundProp(import_editor_props22.stringPropTypeUtil);
|
|
2855
3068
|
const isCustom = !!backgroundImageScaleContext.value;
|
|
3069
|
+
const rowRef = (0, import_react27.useRef)();
|
|
2856
3070
|
const handleSizeChange = (size) => {
|
|
2857
3071
|
if (size === "custom") {
|
|
2858
3072
|
backgroundImageScaleContext.setValue({ width: null, height: null });
|
|
@@ -2860,7 +3074,7 @@ var BackgroundImageOverlaySize = () => {
|
|
|
2860
3074
|
stringPropContext.setValue(size);
|
|
2861
3075
|
}
|
|
2862
3076
|
};
|
|
2863
|
-
return /* @__PURE__ */
|
|
3077
|
+
return /* @__PURE__ */ React47.createElement(import_ui40.Grid, { container: true, spacing: 1.5 }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React47.createElement(PopoverGridContainer, null, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlFormLabel, null, (0, import_i18n17.__)("Size", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React47.createElement(
|
|
2864
3078
|
ControlToggleButtonGroup,
|
|
2865
3079
|
{
|
|
2866
3080
|
exclusive: true,
|
|
@@ -2869,25 +3083,27 @@ var BackgroundImageOverlaySize = () => {
|
|
|
2869
3083
|
disabled: stringPropContext.disabled,
|
|
2870
3084
|
value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value
|
|
2871
3085
|
}
|
|
2872
|
-
)))), isCustom ? /* @__PURE__ */
|
|
3086
|
+
)))), isCustom ? /* @__PURE__ */ React47.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 12, ref: rowRef }, /* @__PURE__ */ React47.createElement(PopoverGridContainer, null, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React47.createElement(
|
|
2873
3087
|
SizeControl,
|
|
2874
3088
|
{
|
|
2875
|
-
startIcon: /* @__PURE__ */
|
|
2876
|
-
|
|
3089
|
+
startIcon: /* @__PURE__ */ React47.createElement(import_icons17.ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
|
|
3090
|
+
extendedOptions: ["auto"],
|
|
3091
|
+
anchorRef: rowRef
|
|
2877
3092
|
}
|
|
2878
|
-
))), /* @__PURE__ */
|
|
3093
|
+
))), /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React47.createElement(
|
|
2879
3094
|
SizeControl,
|
|
2880
3095
|
{
|
|
2881
|
-
startIcon: /* @__PURE__ */
|
|
2882
|
-
|
|
3096
|
+
startIcon: /* @__PURE__ */ React47.createElement(import_icons17.ArrowsMoveVerticalIcon, { fontSize: "tiny" }),
|
|
3097
|
+
extendedOptions: ["auto"],
|
|
3098
|
+
anchorRef: rowRef
|
|
2883
3099
|
}
|
|
2884
3100
|
)))))) : null);
|
|
2885
3101
|
};
|
|
2886
3102
|
|
|
2887
3103
|
// src/controls/background-control/background-overlay/use-background-tabs-history.ts
|
|
2888
|
-
var
|
|
3104
|
+
var import_react28 = require("react");
|
|
2889
3105
|
var import_editor_props23 = require("@elementor/editor-props");
|
|
2890
|
-
var
|
|
3106
|
+
var import_ui41 = require("@elementor/ui");
|
|
2891
3107
|
var useBackgroundTabsHistory = ({
|
|
2892
3108
|
color: initialBackgroundColorOverlay2,
|
|
2893
3109
|
image: initialBackgroundImageOverlay,
|
|
@@ -2905,8 +3121,8 @@ var useBackgroundTabsHistory = ({
|
|
|
2905
3121
|
}
|
|
2906
3122
|
return "image";
|
|
2907
3123
|
};
|
|
2908
|
-
const { getTabsProps, getTabProps, getTabPanelProps } = (0,
|
|
2909
|
-
const valuesHistory = (0,
|
|
3124
|
+
const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui41.useTabs)(getCurrentOverlayType());
|
|
3125
|
+
const valuesHistory = (0, import_react28.useRef)({
|
|
2910
3126
|
image: initialBackgroundImageOverlay,
|
|
2911
3127
|
color: initialBackgroundColorOverlay2,
|
|
2912
3128
|
gradient: initialBackgroundGradientOverlay2
|
|
@@ -2981,7 +3197,7 @@ var backgroundResolutionOptions = [
|
|
|
2981
3197
|
];
|
|
2982
3198
|
var BackgroundOverlayRepeaterControl = createControl(() => {
|
|
2983
3199
|
const { propType, value: overlayValues, setValue, disabled } = useBoundProp(import_editor_props24.backgroundOverlayPropTypeUtil);
|
|
2984
|
-
return /* @__PURE__ */
|
|
3200
|
+
return /* @__PURE__ */ React48.createElement(PropProvider, { propType, value: overlayValues, setValue, disabled }, /* @__PURE__ */ React48.createElement(
|
|
2985
3201
|
Repeater,
|
|
2986
3202
|
{
|
|
2987
3203
|
openOnAdd: true,
|
|
@@ -2999,7 +3215,7 @@ var BackgroundOverlayRepeaterControl = createControl(() => {
|
|
|
2999
3215
|
));
|
|
3000
3216
|
});
|
|
3001
3217
|
var ItemContent2 = ({ anchorEl = null, bind }) => {
|
|
3002
|
-
return /* @__PURE__ */
|
|
3218
|
+
return /* @__PURE__ */ React48.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React48.createElement(Content2, { anchorEl }));
|
|
3003
3219
|
};
|
|
3004
3220
|
var Content2 = ({ anchorEl }) => {
|
|
3005
3221
|
const { getTabsProps, getTabProps, getTabPanelProps } = useBackgroundTabsHistory({
|
|
@@ -3007,27 +3223,27 @@ var Content2 = ({ anchorEl }) => {
|
|
|
3007
3223
|
color: initialBackgroundColorOverlay.value,
|
|
3008
3224
|
gradient: initialBackgroundGradientOverlay.value
|
|
3009
3225
|
});
|
|
3010
|
-
return /* @__PURE__ */
|
|
3011
|
-
|
|
3226
|
+
return /* @__PURE__ */ React48.createElement(import_ui42.Box, { sx: { width: "100%" } }, /* @__PURE__ */ React48.createElement(import_ui42.Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React48.createElement(
|
|
3227
|
+
import_ui42.Tabs,
|
|
3012
3228
|
{
|
|
3013
3229
|
size: "small",
|
|
3014
3230
|
variant: "fullWidth",
|
|
3015
3231
|
...getTabsProps(),
|
|
3016
3232
|
"aria-label": (0, import_i18n18.__)("Background Overlay", "elementor")
|
|
3017
3233
|
},
|
|
3018
|
-
/* @__PURE__ */
|
|
3019
|
-
/* @__PURE__ */
|
|
3020
|
-
/* @__PURE__ */
|
|
3021
|
-
)), /* @__PURE__ */
|
|
3234
|
+
/* @__PURE__ */ React48.createElement(import_ui42.Tab, { label: (0, import_i18n18.__)("Image", "elementor"), ...getTabProps("image") }),
|
|
3235
|
+
/* @__PURE__ */ React48.createElement(import_ui42.Tab, { label: (0, import_i18n18.__)("Gradient", "elementor"), ...getTabProps("gradient") }),
|
|
3236
|
+
/* @__PURE__ */ React48.createElement(import_ui42.Tab, { label: (0, import_i18n18.__)("Color", "elementor"), ...getTabProps("color") })
|
|
3237
|
+
)), /* @__PURE__ */ React48.createElement(import_ui42.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React48.createElement(PopoverContent, null, /* @__PURE__ */ React48.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React48.createElement(import_ui42.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React48.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React48.createElement(import_ui42.TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React48.createElement(PopoverContent, null, /* @__PURE__ */ React48.createElement(ColorOverlayContent, { anchorEl }))));
|
|
3022
3238
|
};
|
|
3023
3239
|
var ItemIcon2 = ({ value }) => {
|
|
3024
3240
|
switch (value.$$type) {
|
|
3025
3241
|
case "background-image-overlay":
|
|
3026
|
-
return /* @__PURE__ */
|
|
3242
|
+
return /* @__PURE__ */ React48.createElement(ItemIconImage, { value });
|
|
3027
3243
|
case "background-color-overlay":
|
|
3028
|
-
return /* @__PURE__ */
|
|
3244
|
+
return /* @__PURE__ */ React48.createElement(ItemIconColor, { value });
|
|
3029
3245
|
case "background-gradient-overlay":
|
|
3030
|
-
return /* @__PURE__ */
|
|
3246
|
+
return /* @__PURE__ */ React48.createElement(ItemIconGradient, { value });
|
|
3031
3247
|
default:
|
|
3032
3248
|
return null;
|
|
3033
3249
|
}
|
|
@@ -3040,12 +3256,12 @@ var extractColorFrom = (prop) => {
|
|
|
3040
3256
|
};
|
|
3041
3257
|
var ItemIconColor = ({ value: prop }) => {
|
|
3042
3258
|
const color = extractColorFrom(prop);
|
|
3043
|
-
return /* @__PURE__ */
|
|
3259
|
+
return /* @__PURE__ */ React48.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
|
|
3044
3260
|
};
|
|
3045
3261
|
var ItemIconImage = ({ value }) => {
|
|
3046
3262
|
const { imageUrl } = useImage(value);
|
|
3047
|
-
return /* @__PURE__ */
|
|
3048
|
-
|
|
3263
|
+
return /* @__PURE__ */ React48.createElement(
|
|
3264
|
+
import_ui42.CardMedia,
|
|
3049
3265
|
{
|
|
3050
3266
|
image: imageUrl,
|
|
3051
3267
|
sx: (theme) => ({
|
|
@@ -3059,49 +3275,49 @@ var ItemIconImage = ({ value }) => {
|
|
|
3059
3275
|
};
|
|
3060
3276
|
var ItemIconGradient = ({ value }) => {
|
|
3061
3277
|
const gradient = getGradientValue(value);
|
|
3062
|
-
return /* @__PURE__ */
|
|
3278
|
+
return /* @__PURE__ */ React48.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
|
|
3063
3279
|
};
|
|
3064
3280
|
var ItemLabel2 = ({ value }) => {
|
|
3065
3281
|
switch (value.$$type) {
|
|
3066
3282
|
case "background-image-overlay":
|
|
3067
|
-
return /* @__PURE__ */
|
|
3283
|
+
return /* @__PURE__ */ React48.createElement(ItemLabelImage, { value });
|
|
3068
3284
|
case "background-color-overlay":
|
|
3069
|
-
return /* @__PURE__ */
|
|
3285
|
+
return /* @__PURE__ */ React48.createElement(ItemLabelColor, { value });
|
|
3070
3286
|
case "background-gradient-overlay":
|
|
3071
|
-
return /* @__PURE__ */
|
|
3287
|
+
return /* @__PURE__ */ React48.createElement(ItemLabelGradient, { value });
|
|
3072
3288
|
default:
|
|
3073
3289
|
return null;
|
|
3074
3290
|
}
|
|
3075
3291
|
};
|
|
3076
3292
|
var ItemLabelColor = ({ value: prop }) => {
|
|
3077
3293
|
const color = extractColorFrom(prop);
|
|
3078
|
-
return /* @__PURE__ */
|
|
3294
|
+
return /* @__PURE__ */ React48.createElement("span", null, color);
|
|
3079
3295
|
};
|
|
3080
3296
|
var ItemLabelImage = ({ value }) => {
|
|
3081
3297
|
const { imageTitle } = useImage(value);
|
|
3082
|
-
return /* @__PURE__ */
|
|
3298
|
+
return /* @__PURE__ */ React48.createElement("span", null, imageTitle);
|
|
3083
3299
|
};
|
|
3084
3300
|
var ItemLabelGradient = ({ value }) => {
|
|
3085
3301
|
if (value.value.type.value === "linear") {
|
|
3086
|
-
return /* @__PURE__ */
|
|
3302
|
+
return /* @__PURE__ */ React48.createElement("span", null, (0, import_i18n18.__)("Linear Gradient", "elementor"));
|
|
3087
3303
|
}
|
|
3088
|
-
return /* @__PURE__ */
|
|
3304
|
+
return /* @__PURE__ */ React48.createElement("span", null, (0, import_i18n18.__)("Radial Gradient", "elementor"));
|
|
3089
3305
|
};
|
|
3090
3306
|
var ColorOverlayContent = ({ anchorEl }) => {
|
|
3091
3307
|
const propContext = useBoundProp(import_editor_props24.backgroundColorOverlayPropTypeUtil);
|
|
3092
|
-
return /* @__PURE__ */
|
|
3308
|
+
return /* @__PURE__ */ React48.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React48.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React48.createElement(ColorControl, { anchorEl })));
|
|
3093
3309
|
};
|
|
3094
3310
|
var ImageOverlayContent = () => {
|
|
3095
3311
|
const propContext = useBoundProp(import_editor_props24.backgroundImageOverlayPropTypeUtil);
|
|
3096
|
-
return /* @__PURE__ */
|
|
3312
|
+
return /* @__PURE__ */ React48.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React48.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React48.createElement(import_ui42.Grid, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React48.createElement(import_ui42.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React48.createElement(
|
|
3097
3313
|
ImageControl,
|
|
3098
3314
|
{
|
|
3099
3315
|
resolutionLabel: (0, import_i18n18.__)("Resolution", "elementor"),
|
|
3100
3316
|
sizes: backgroundResolutionOptions
|
|
3101
3317
|
}
|
|
3102
|
-
)))), /* @__PURE__ */
|
|
3318
|
+
)))), /* @__PURE__ */ React48.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React48.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React48.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React48.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React48.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React48.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React48.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React48.createElement(BackgroundImageOverlayAttachment, null)));
|
|
3103
3319
|
};
|
|
3104
|
-
var StyledUnstableColorIndicator = (0,
|
|
3320
|
+
var StyledUnstableColorIndicator = (0, import_ui42.styled)(import_ui42.UnstableColorIndicator)(({ theme }) => ({
|
|
3105
3321
|
borderRadius: `${theme.shape.borderRadius / 2}px`
|
|
3106
3322
|
}));
|
|
3107
3323
|
var useImage = (image) => {
|
|
@@ -3137,21 +3353,21 @@ var getGradientValue = (value) => {
|
|
|
3137
3353
|
// src/controls/background-control/background-control.tsx
|
|
3138
3354
|
var BackgroundControl = createControl(() => {
|
|
3139
3355
|
const propContext = useBoundProp(import_editor_props25.backgroundPropTypeUtil);
|
|
3140
|
-
const isUsingNestedProps = (0,
|
|
3356
|
+
const isUsingNestedProps = (0, import_editor_v1_adapters4.isExperimentActive)("e_v_3_30");
|
|
3141
3357
|
const colorLabel = (0, import_i18n19.__)("Color", "elementor");
|
|
3142
|
-
return /* @__PURE__ */
|
|
3358
|
+
return /* @__PURE__ */ React49.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React49.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React49.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React49.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React49.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui43.Grid, { item: true, xs: 6 }, isUsingNestedProps ? /* @__PURE__ */ React49.createElement(ControlLabel, null, colorLabel) : /* @__PURE__ */ React49.createElement(ControlFormLabel, null, colorLabel)), /* @__PURE__ */ React49.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ColorControl, null)))));
|
|
3143
3359
|
});
|
|
3144
3360
|
|
|
3145
3361
|
// src/controls/switch-control.tsx
|
|
3146
|
-
var
|
|
3362
|
+
var React50 = __toESM(require("react"));
|
|
3147
3363
|
var import_editor_props26 = require("@elementor/editor-props");
|
|
3148
|
-
var
|
|
3364
|
+
var import_ui44 = require("@elementor/ui");
|
|
3149
3365
|
var SwitchControl2 = createControl(() => {
|
|
3150
3366
|
const { value, setValue, disabled } = useBoundProp(import_editor_props26.booleanPropTypeUtil);
|
|
3151
3367
|
const handleChange = (event) => {
|
|
3152
3368
|
setValue(event.target.checked);
|
|
3153
3369
|
};
|
|
3154
|
-
return /* @__PURE__ */
|
|
3370
|
+
return /* @__PURE__ */ React50.createElement("div", { style: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React50.createElement(import_ui44.Switch, { checked: !!value, onChange: handleChange, size: "small", disabled }));
|
|
3155
3371
|
});
|
|
3156
3372
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3157
3373
|
0 && (module.exports = {
|