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