@elementor/editor-controls 0.20.0 → 0.24.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 +48 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +373 -290
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +307 -224
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/control-form-label.tsx +6 -0
- package/src/components/control-label.tsx +12 -3
- package/src/components/repeater.tsx +18 -8
- package/src/components/sortable.tsx +6 -6
- package/src/components/text-field-inner-selection.tsx +3 -3
- package/src/controls/background-control/background-control.tsx +2 -2
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx +2 -2
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx +2 -2
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx +2 -2
- package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx +2 -2
- package/src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx +30 -5
- package/src/controls/color-control.tsx +1 -1
- package/src/controls/equal-unequal-sizes-control.tsx +2 -1
- package/src/controls/font-family-control/font-family-control.tsx +2 -0
- package/src/controls/gap-control.tsx +3 -2
- package/src/controls/image-control.tsx +3 -3
- package/src/controls/link-control.tsx +99 -27
- package/src/controls/linked-dimensions-control.tsx +7 -6
- package/src/controls/stroke-control.tsx +2 -2
- package/src/controls/svg-media-control.tsx +2 -2
- package/src/index.ts +2 -1
- package/src/control-adornments/control-label-with-adornments.tsx +0 -15
package/dist/index.mjs
CHANGED
|
@@ -153,10 +153,10 @@ var resolveUnionPropType = (propType, key) => {
|
|
|
153
153
|
return resolvedPropType;
|
|
154
154
|
};
|
|
155
155
|
|
|
156
|
-
// src/components/control-label.tsx
|
|
156
|
+
// src/components/control-form-label.tsx
|
|
157
157
|
import * as React3 from "react";
|
|
158
158
|
import { FormLabel } from "@elementor/ui";
|
|
159
|
-
var
|
|
159
|
+
var ControlFormLabel = ({ children }) => {
|
|
160
160
|
return /* @__PURE__ */ React3.createElement(FormLabel, { size: "tiny" }, children);
|
|
161
161
|
};
|
|
162
162
|
|
|
@@ -363,7 +363,7 @@ var ImageControl = createControl(
|
|
|
363
363
|
const propContext = useBoundProp(imagePropTypeUtil);
|
|
364
364
|
const { data: allowSvgUpload } = useUnfilteredFilesUpload();
|
|
365
365
|
const mediaTypes = allowSvgUpload ? ["image", "svg"] : ["image"];
|
|
366
|
-
return /* @__PURE__ */ React10.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React10.createElement(Stack2, { gap: 1.5 }, /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React10.createElement(
|
|
366
|
+
return /* @__PURE__ */ React10.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React10.createElement(Stack2, { gap: 1.5 }, /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "src" }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, " ", __2("Image", "elementor"), " "), /* @__PURE__ */ React10.createElement(ImageMediaControl, { mediaTypes })), /* @__PURE__ */ React10.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React10.createElement(Grid, { container: true, gap: 1.5, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React10.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React10.createElement(ControlFormLabel, null, " ", resolutionLabel, " ")), /* @__PURE__ */ React10.createElement(Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React10.createElement(SelectControl, { options: sizes }))))));
|
|
367
367
|
}
|
|
368
368
|
);
|
|
369
369
|
|
|
@@ -456,11 +456,11 @@ var SelectionEndAdornment = ({
|
|
|
456
456
|
Button2,
|
|
457
457
|
{
|
|
458
458
|
size: "small",
|
|
459
|
-
color: "
|
|
460
|
-
sx: { font: "inherit", minWidth: "initial" },
|
|
459
|
+
color: "secondary",
|
|
460
|
+
sx: { font: "inherit", minWidth: "initial", textTransform: "uppercase" },
|
|
461
461
|
...bindTrigger(popupState)
|
|
462
462
|
},
|
|
463
|
-
value
|
|
463
|
+
value
|
|
464
464
|
), /* @__PURE__ */ React13.createElement(Menu, { MenuListProps: { dense: true }, ...bindMenu(popupState) }, options.map((option, index) => /* @__PURE__ */ React13.createElement(MenuListItem2, { key: option, onClick: () => handleMenuItemClick(index) }, option.toUpperCase()))));
|
|
465
465
|
};
|
|
466
466
|
|
|
@@ -607,7 +607,7 @@ import { UnstableColorField } from "@elementor/ui";
|
|
|
607
607
|
var ColorControl = createControl(({ propTypeUtil = colorPropTypeUtil, ...props }) => {
|
|
608
608
|
const { value, setValue } = useBoundProp(propTypeUtil);
|
|
609
609
|
const handleChange = (selectedColor) => {
|
|
610
|
-
setValue(selectedColor);
|
|
610
|
+
setValue(selectedColor || null);
|
|
611
611
|
};
|
|
612
612
|
return /* @__PURE__ */ React16.createElement(ControlActions, null, /* @__PURE__ */ React16.createElement(UnstableColorField, { size: "tiny", ...props, value: value ?? "", onChange: handleChange, fullWidth: true }));
|
|
613
613
|
});
|
|
@@ -618,10 +618,10 @@ var StrokeControl = createControl(() => {
|
|
|
618
618
|
const propContext = useBoundProp(strokePropTypeUtil);
|
|
619
619
|
return /* @__PURE__ */ React17.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React17.createElement(SectionContent, null, /* @__PURE__ */ React17.createElement(Control, { bind: "width", label: __3("Stroke width", "elementor") }, /* @__PURE__ */ React17.createElement(SizeControl, { units })), /* @__PURE__ */ React17.createElement(Control, { bind: "color", label: __3("Stroke color", "elementor") }, /* @__PURE__ */ React17.createElement(ColorControl, null))));
|
|
620
620
|
});
|
|
621
|
-
var Control = ({ bind, label, children }) => /* @__PURE__ */ React17.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React17.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React17.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React17.createElement(
|
|
621
|
+
var Control = ({ bind, label, children }) => /* @__PURE__ */ React17.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React17.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React17.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React17.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React17.createElement(Grid2, { item: true, xs: 6 }, children)));
|
|
622
622
|
|
|
623
623
|
// src/controls/box-shadow-repeater-control.tsx
|
|
624
|
-
import * as
|
|
624
|
+
import * as React24 from "react";
|
|
625
625
|
import { boxShadowPropTypeUtil, shadowPropTypeUtil } from "@elementor/editor-props";
|
|
626
626
|
import { FormLabel as FormLabel2, Grid as Grid4, UnstableColorIndicator } from "@elementor/ui";
|
|
627
627
|
import { __ as __5 } from "@wordpress/i18n";
|
|
@@ -642,7 +642,7 @@ var PopoverGridContainer = ({
|
|
|
642
642
|
}) => /* @__PURE__ */ React19.createElement(Grid3, { container: true, gap, alignItems, flexWrap }, children);
|
|
643
643
|
|
|
644
644
|
// src/components/repeater.tsx
|
|
645
|
-
import * as
|
|
645
|
+
import * as React23 from "react";
|
|
646
646
|
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
647
647
|
import { CopyIcon, EyeIcon, EyeOffIcon, PlusIcon, XIcon } from "@elementor/icons";
|
|
648
648
|
import {
|
|
@@ -659,8 +659,30 @@ import {
|
|
|
659
659
|
} from "@elementor/ui";
|
|
660
660
|
import { __ as __4 } from "@wordpress/i18n";
|
|
661
661
|
|
|
662
|
-
// src/
|
|
662
|
+
// src/control-adornments/control-adornments.tsx
|
|
663
|
+
import * as React21 from "react";
|
|
664
|
+
|
|
665
|
+
// src/control-adornments/control-adornments-context.tsx
|
|
663
666
|
import * as React20 from "react";
|
|
667
|
+
import { createContext as createContext5, useContext as useContext5 } from "react";
|
|
668
|
+
var Context2 = createContext5(null);
|
|
669
|
+
var ControlAdornmentsProvider = ({ children, items }) => /* @__PURE__ */ React20.createElement(Context2.Provider, { value: { items } }, children);
|
|
670
|
+
var useControlAdornments = () => {
|
|
671
|
+
const context = useContext5(Context2);
|
|
672
|
+
return context?.items ?? [];
|
|
673
|
+
};
|
|
674
|
+
|
|
675
|
+
// src/control-adornments/control-adornments.tsx
|
|
676
|
+
function ControlAdornments() {
|
|
677
|
+
const items = useControlAdornments();
|
|
678
|
+
if (items?.length === 0) {
|
|
679
|
+
return null;
|
|
680
|
+
}
|
|
681
|
+
return /* @__PURE__ */ React21.createElement(React21.Fragment, null, items.map(({ Adornment, id }) => /* @__PURE__ */ React21.createElement(Adornment, { key: id })));
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
// src/components/sortable.tsx
|
|
685
|
+
import * as React22 from "react";
|
|
664
686
|
import { GripVerticalIcon } from "@elementor/icons";
|
|
665
687
|
import {
|
|
666
688
|
Divider,
|
|
@@ -671,10 +693,10 @@ import {
|
|
|
671
693
|
UnstableSortableProvider
|
|
672
694
|
} from "@elementor/ui";
|
|
673
695
|
var SortableProvider = (props) => {
|
|
674
|
-
return /* @__PURE__ */
|
|
696
|
+
return /* @__PURE__ */ React22.createElement(List, { sx: { p: 0, my: -0.5, mx: 0 } }, /* @__PURE__ */ React22.createElement(UnstableSortableProvider, { restrictAxis: true, disableDragOverlay: false, variant: "static", ...props }));
|
|
675
697
|
};
|
|
676
698
|
var SortableItem = ({ id, children }) => {
|
|
677
|
-
return /* @__PURE__ */
|
|
699
|
+
return /* @__PURE__ */ React22.createElement(
|
|
678
700
|
UnstableSortableItem,
|
|
679
701
|
{
|
|
680
702
|
id,
|
|
@@ -683,21 +705,10 @@ var SortableItem = ({ id, children }) => {
|
|
|
683
705
|
triggerProps,
|
|
684
706
|
itemStyle,
|
|
685
707
|
triggerStyle,
|
|
686
|
-
isDragOverlay,
|
|
687
708
|
showDropIndication,
|
|
688
709
|
dropIndicationStyle
|
|
689
710
|
}) => {
|
|
690
|
-
return /* @__PURE__ */
|
|
691
|
-
StyledListItem,
|
|
692
|
-
{
|
|
693
|
-
...itemProps,
|
|
694
|
-
style: itemStyle,
|
|
695
|
-
sx: { backgroundColor: isDragOverlay ? "background.paper" : void 0 }
|
|
696
|
-
},
|
|
697
|
-
/* @__PURE__ */ React20.createElement(SortableTrigger, { ...triggerProps, style: triggerStyle }),
|
|
698
|
-
children,
|
|
699
|
-
showDropIndication && /* @__PURE__ */ React20.createElement(StyledDivider, { style: dropIndicationStyle })
|
|
700
|
-
);
|
|
711
|
+
return /* @__PURE__ */ React22.createElement(StyledListItem, { ...itemProps, style: itemStyle }, /* @__PURE__ */ React22.createElement(SortableTrigger, { ...triggerProps, style: triggerStyle }), children, showDropIndication && /* @__PURE__ */ React22.createElement(StyledDivider, { style: dropIndicationStyle }));
|
|
701
712
|
}
|
|
702
713
|
}
|
|
703
714
|
);
|
|
@@ -720,13 +731,18 @@ var StyledListItem = styled2(ListItem)`
|
|
|
720
731
|
transform: translate( -75%, -50% );
|
|
721
732
|
}
|
|
722
733
|
|
|
734
|
+
&[aria-describedby=''] > .MuiTag-root {
|
|
735
|
+
background-color: ${({ theme }) => theme.palette.background.paper};
|
|
736
|
+
box-shadow: ${({ theme }) => theme.shadows[3]};
|
|
737
|
+
}
|
|
738
|
+
|
|
723
739
|
&:hover {
|
|
724
740
|
& .class-item-sortable-trigger {
|
|
725
741
|
visibility: visible;
|
|
726
742
|
}
|
|
727
743
|
}
|
|
728
744
|
`;
|
|
729
|
-
var SortableTrigger = (props) => /* @__PURE__ */
|
|
745
|
+
var SortableTrigger = (props) => /* @__PURE__ */ React22.createElement("div", { ...props, role: "button", className: "class-item-sortable-trigger" }, /* @__PURE__ */ React22.createElement(GripVerticalIcon, { fontSize: "tiny" }));
|
|
730
746
|
var StyledDivider = styled2(Divider)`
|
|
731
747
|
height: 0px;
|
|
732
748
|
border: none;
|
|
@@ -746,6 +762,7 @@ var StyledDivider = styled2(Divider)`
|
|
|
746
762
|
|
|
747
763
|
// src/components/repeater.tsx
|
|
748
764
|
var SIZE = "tiny";
|
|
765
|
+
var EMPTY_OPEN_ITEM = -1;
|
|
749
766
|
var Repeater = ({
|
|
750
767
|
label,
|
|
751
768
|
itemSettings,
|
|
@@ -754,7 +771,7 @@ var Repeater = ({
|
|
|
754
771
|
values: repeaterValues = [],
|
|
755
772
|
setValues: setRepeaterValues
|
|
756
773
|
}) => {
|
|
757
|
-
const [openItem, setOpenItem] = useState2(
|
|
774
|
+
const [openItem, setOpenItem] = useState2(EMPTY_OPEN_ITEM);
|
|
758
775
|
const [items, setItems] = useSyncExternalState({
|
|
759
776
|
external: repeaterValues,
|
|
760
777
|
// @ts-expect-error - as long as persistWhen => true, value will never be null
|
|
@@ -818,24 +835,33 @@ var Repeater = ({
|
|
|
818
835
|
});
|
|
819
836
|
});
|
|
820
837
|
};
|
|
821
|
-
return /* @__PURE__ */
|
|
838
|
+
return /* @__PURE__ */ React23.createElement(SectionContent, null, /* @__PURE__ */ React23.createElement(Stack5, { direction: "row", justifyContent: "start", alignItems: "center", gap: 1 }, /* @__PURE__ */ React23.createElement(Typography, { component: "label", variant: "caption", color: "text.secondary" }, label), /* @__PURE__ */ React23.createElement(ControlAdornments, null), /* @__PURE__ */ React23.createElement(
|
|
839
|
+
IconButton,
|
|
840
|
+
{
|
|
841
|
+
sx: { ml: "auto" },
|
|
842
|
+
size: SIZE,
|
|
843
|
+
onClick: addRepeaterItem,
|
|
844
|
+
"aria-label": __4("Add item", "elementor")
|
|
845
|
+
},
|
|
846
|
+
/* @__PURE__ */ React23.createElement(PlusIcon, { fontSize: SIZE })
|
|
847
|
+
)), 0 < uniqueKeys.length && /* @__PURE__ */ React23.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key, index) => {
|
|
822
848
|
const value = items[index];
|
|
823
849
|
if (!value) {
|
|
824
850
|
return null;
|
|
825
851
|
}
|
|
826
|
-
return /* @__PURE__ */
|
|
852
|
+
return /* @__PURE__ */ React23.createElement(SortableItem, { id: key, key: `sortable-${key}` }, /* @__PURE__ */ React23.createElement(
|
|
827
853
|
RepeaterItem,
|
|
828
854
|
{
|
|
829
|
-
bind: String(index),
|
|
830
855
|
disabled: value?.disabled,
|
|
831
|
-
label: /* @__PURE__ */
|
|
832
|
-
startIcon: /* @__PURE__ */
|
|
856
|
+
label: /* @__PURE__ */ React23.createElement(itemSettings.Label, { value }),
|
|
857
|
+
startIcon: /* @__PURE__ */ React23.createElement(itemSettings.Icon, { value }),
|
|
833
858
|
removeItem: () => removeRepeaterItem(index),
|
|
834
859
|
duplicateItem: () => duplicateRepeaterItem(index),
|
|
835
860
|
toggleDisableItem: () => toggleDisableRepeaterItem(index),
|
|
836
|
-
openOnMount: openOnAdd && openItem === key
|
|
861
|
+
openOnMount: openOnAdd && openItem === key,
|
|
862
|
+
onOpen: () => setOpenItem(EMPTY_OPEN_ITEM)
|
|
837
863
|
},
|
|
838
|
-
(props) => /* @__PURE__ */
|
|
864
|
+
(props) => /* @__PURE__ */ React23.createElement(itemSettings.Content, { ...props, value, bind: String(index) })
|
|
839
865
|
));
|
|
840
866
|
})));
|
|
841
867
|
};
|
|
@@ -847,14 +873,15 @@ var RepeaterItem = ({
|
|
|
847
873
|
removeItem,
|
|
848
874
|
duplicateItem,
|
|
849
875
|
toggleDisableItem,
|
|
850
|
-
openOnMount
|
|
876
|
+
openOnMount,
|
|
877
|
+
onOpen
|
|
851
878
|
}) => {
|
|
852
879
|
const [anchorEl, setAnchorEl] = useState2(null);
|
|
853
|
-
const { popoverState, popoverProps, ref, setRef } = usePopover(openOnMount);
|
|
880
|
+
const { popoverState, popoverProps, ref, setRef } = usePopover(openOnMount, onOpen);
|
|
854
881
|
const duplicateLabel = __4("Duplicate", "elementor");
|
|
855
882
|
const toggleLabel = disabled ? __4("Show", "elementor") : __4("Hide", "elementor");
|
|
856
883
|
const removeLabel = __4("Remove", "elementor");
|
|
857
|
-
return /* @__PURE__ */
|
|
884
|
+
return /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement(
|
|
858
885
|
UnstableTag,
|
|
859
886
|
{
|
|
860
887
|
label,
|
|
@@ -865,10 +892,9 @@ var RepeaterItem = ({
|
|
|
865
892
|
"aria-label": __4("Open item", "elementor"),
|
|
866
893
|
...bindTrigger2(popoverState),
|
|
867
894
|
startIcon,
|
|
868
|
-
actions: /* @__PURE__ */
|
|
869
|
-
sx: { backgroundColor: "background.paper" }
|
|
895
|
+
actions: /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement(Tooltip, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React23.createElement(IconButton, { size: SIZE, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React23.createElement(CopyIcon, { fontSize: SIZE }))), /* @__PURE__ */ React23.createElement(Tooltip, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React23.createElement(IconButton, { size: SIZE, onClick: toggleDisableItem, "aria-label": toggleLabel }, disabled ? /* @__PURE__ */ React23.createElement(EyeOffIcon, { fontSize: SIZE }) : /* @__PURE__ */ React23.createElement(EyeIcon, { fontSize: SIZE }))), /* @__PURE__ */ React23.createElement(Tooltip, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React23.createElement(IconButton, { size: SIZE, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React23.createElement(XIcon, { fontSize: SIZE }))))
|
|
870
896
|
}
|
|
871
|
-
), /* @__PURE__ */
|
|
897
|
+
), /* @__PURE__ */ React23.createElement(
|
|
872
898
|
Popover,
|
|
873
899
|
{
|
|
874
900
|
disablePortal: true,
|
|
@@ -882,16 +908,17 @@ var RepeaterItem = ({
|
|
|
882
908
|
...popoverProps,
|
|
883
909
|
anchorEl: ref
|
|
884
910
|
},
|
|
885
|
-
/* @__PURE__ */
|
|
911
|
+
/* @__PURE__ */ React23.createElement(Box, null, children({ anchorEl }))
|
|
886
912
|
));
|
|
887
913
|
};
|
|
888
|
-
var usePopover = (openOnMount) => {
|
|
914
|
+
var usePopover = (openOnMount, onOpen) => {
|
|
889
915
|
const [ref, setRef] = useState2(null);
|
|
890
916
|
const popoverState = usePopupState2({ variant: "popover" });
|
|
891
917
|
const popoverProps = bindPopover(popoverState);
|
|
892
918
|
useEffect2(() => {
|
|
893
919
|
if (openOnMount && ref) {
|
|
894
920
|
popoverState.open(ref);
|
|
921
|
+
onOpen?.();
|
|
895
922
|
}
|
|
896
923
|
}, [ref]);
|
|
897
924
|
return {
|
|
@@ -905,7 +932,7 @@ var usePopover = (openOnMount) => {
|
|
|
905
932
|
// src/controls/box-shadow-repeater-control.tsx
|
|
906
933
|
var BoxShadowRepeaterControl = createControl(() => {
|
|
907
934
|
const { propType, value, setValue } = useBoundProp(boxShadowPropTypeUtil);
|
|
908
|
-
return /* @__PURE__ */
|
|
935
|
+
return /* @__PURE__ */ React24.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React24.createElement(
|
|
909
936
|
Repeater,
|
|
910
937
|
{
|
|
911
938
|
openOnAdd: true,
|
|
@@ -921,13 +948,13 @@ var BoxShadowRepeaterControl = createControl(() => {
|
|
|
921
948
|
}
|
|
922
949
|
));
|
|
923
950
|
});
|
|
924
|
-
var ItemIcon = ({ value }) => /* @__PURE__ */
|
|
951
|
+
var ItemIcon = ({ value }) => /* @__PURE__ */ React24.createElement(UnstableColorIndicator, { size: "inherit", component: "span", value: value.value.color.value });
|
|
925
952
|
var ItemContent = ({ anchorEl, bind }) => {
|
|
926
|
-
return /* @__PURE__ */
|
|
953
|
+
return /* @__PURE__ */ React24.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React24.createElement(Content, { anchorEl }));
|
|
927
954
|
};
|
|
928
955
|
var Content = ({ anchorEl }) => {
|
|
929
956
|
const { propType, value, setValue } = useBoundProp(shadowPropTypeUtil);
|
|
930
|
-
return /* @__PURE__ */
|
|
957
|
+
return /* @__PURE__ */ React24.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React24.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React24.createElement(PopoverGridContainer, null, /* @__PURE__ */ React24.createElement(Control2, { bind: "color", label: __5("Color", "elementor") }, /* @__PURE__ */ React24.createElement(
|
|
931
958
|
ColorControl,
|
|
932
959
|
{
|
|
933
960
|
slotProps: {
|
|
@@ -944,7 +971,7 @@ var Content = ({ anchorEl }) => {
|
|
|
944
971
|
}
|
|
945
972
|
}
|
|
946
973
|
}
|
|
947
|
-
)), /* @__PURE__ */
|
|
974
|
+
)), /* @__PURE__ */ React24.createElement(Control2, { bind: "position", label: __5("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React24.createElement(
|
|
948
975
|
SelectControl,
|
|
949
976
|
{
|
|
950
977
|
options: [
|
|
@@ -952,14 +979,14 @@ var Content = ({ anchorEl }) => {
|
|
|
952
979
|
{ label: __5("Outset", "elementor"), value: null }
|
|
953
980
|
]
|
|
954
981
|
}
|
|
955
|
-
))), /* @__PURE__ */
|
|
982
|
+
))), /* @__PURE__ */ React24.createElement(PopoverGridContainer, null, /* @__PURE__ */ React24.createElement(Control2, { bind: "hOffset", label: __5("Horizontal", "elementor") }, /* @__PURE__ */ React24.createElement(SizeControl, null)), /* @__PURE__ */ React24.createElement(Control2, { bind: "vOffset", label: __5("Vertical", "elementor") }, /* @__PURE__ */ React24.createElement(SizeControl, null))), /* @__PURE__ */ React24.createElement(PopoverGridContainer, null, /* @__PURE__ */ React24.createElement(Control2, { bind: "blur", label: __5("Blur", "elementor") }, /* @__PURE__ */ React24.createElement(SizeControl, null)), /* @__PURE__ */ React24.createElement(Control2, { bind: "spread", label: __5("Spread", "elementor") }, /* @__PURE__ */ React24.createElement(SizeControl, null)))));
|
|
956
983
|
};
|
|
957
984
|
var Control2 = ({
|
|
958
985
|
label,
|
|
959
986
|
bind,
|
|
960
987
|
children,
|
|
961
988
|
sx
|
|
962
|
-
}) => /* @__PURE__ */
|
|
989
|
+
}) => /* @__PURE__ */ React24.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React24.createElement(Grid4, { item: true, xs: 6, sx }, /* @__PURE__ */ React24.createElement(Grid4, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React24.createElement(Grid4, { item: true, xs: 12 }, /* @__PURE__ */ React24.createElement(FormLabel2, { size: "tiny" }, label)), /* @__PURE__ */ React24.createElement(Grid4, { item: true, xs: 12 }, children))));
|
|
963
990
|
var ItemLabel = ({ value }) => {
|
|
964
991
|
const { position, hOffset, vOffset, blur, spread } = value.value;
|
|
965
992
|
const { size: blurSize = "", unit: blurUnit = "" } = blur?.value || {};
|
|
@@ -973,7 +1000,7 @@ var ItemLabel = ({ value }) => {
|
|
|
973
1000
|
blurSize + blurUnit,
|
|
974
1001
|
spreadSize + spreadUnit
|
|
975
1002
|
].join(" ");
|
|
976
|
-
return /* @__PURE__ */
|
|
1003
|
+
return /* @__PURE__ */ React24.createElement("span", { style: { textTransform: "capitalize" } }, positionLabel, ": ", sizes);
|
|
977
1004
|
};
|
|
978
1005
|
var initialShadow = {
|
|
979
1006
|
$$type: "shadow",
|
|
@@ -1003,11 +1030,11 @@ var initialShadow = {
|
|
|
1003
1030
|
};
|
|
1004
1031
|
|
|
1005
1032
|
// src/controls/toggle-control.tsx
|
|
1006
|
-
import * as
|
|
1033
|
+
import * as React26 from "react";
|
|
1007
1034
|
import { stringPropTypeUtil as stringPropTypeUtil5 } from "@elementor/editor-props";
|
|
1008
1035
|
|
|
1009
1036
|
// src/components/control-toggle-button-group.tsx
|
|
1010
|
-
import * as
|
|
1037
|
+
import * as React25 from "react";
|
|
1011
1038
|
import {
|
|
1012
1039
|
styled as styled3,
|
|
1013
1040
|
ToggleButton,
|
|
@@ -1031,7 +1058,7 @@ var ControlToggleButtonGroup = ({
|
|
|
1031
1058
|
const handleChange = (_, newValue) => {
|
|
1032
1059
|
onChange(newValue);
|
|
1033
1060
|
};
|
|
1034
|
-
return /* @__PURE__ */
|
|
1061
|
+
return /* @__PURE__ */ React25.createElement(
|
|
1035
1062
|
StyledToggleButtonGroup,
|
|
1036
1063
|
{
|
|
1037
1064
|
justify,
|
|
@@ -1046,7 +1073,7 @@ var ControlToggleButtonGroup = ({
|
|
|
1046
1073
|
}
|
|
1047
1074
|
},
|
|
1048
1075
|
items.map(
|
|
1049
|
-
({ label, value: buttonValue, renderContent: Content3, showTooltip }) => showTooltip ? /* @__PURE__ */
|
|
1076
|
+
({ label, value: buttonValue, renderContent: Content3, showTooltip }) => showTooltip ? /* @__PURE__ */ React25.createElement(Tooltip2, { key: buttonValue, title: label, disableFocusListener: true, placement: "top" }, /* @__PURE__ */ React25.createElement(ToggleButton, { value: buttonValue, "aria-label": label, size, fullWidth }, /* @__PURE__ */ React25.createElement(Content3, { size }))) : /* @__PURE__ */ React25.createElement(
|
|
1050
1077
|
ToggleButton,
|
|
1051
1078
|
{
|
|
1052
1079
|
key: buttonValue,
|
|
@@ -1055,7 +1082,7 @@ var ControlToggleButtonGroup = ({
|
|
|
1055
1082
|
size,
|
|
1056
1083
|
fullWidth
|
|
1057
1084
|
},
|
|
1058
|
-
/* @__PURE__ */
|
|
1085
|
+
/* @__PURE__ */ React25.createElement(Content3, { size })
|
|
1059
1086
|
)
|
|
1060
1087
|
)
|
|
1061
1088
|
);
|
|
@@ -1082,7 +1109,7 @@ var ToggleControl = createControl(
|
|
|
1082
1109
|
fullWidth,
|
|
1083
1110
|
size
|
|
1084
1111
|
};
|
|
1085
|
-
return exclusive ? /* @__PURE__ */
|
|
1112
|
+
return exclusive ? /* @__PURE__ */ React26.createElement(
|
|
1086
1113
|
ControlToggleButtonGroup,
|
|
1087
1114
|
{
|
|
1088
1115
|
...toggleButtonGroupProps,
|
|
@@ -1090,7 +1117,7 @@ var ToggleControl = createControl(
|
|
|
1090
1117
|
onChange: setValue,
|
|
1091
1118
|
exclusive: true
|
|
1092
1119
|
}
|
|
1093
|
-
) : /* @__PURE__ */
|
|
1120
|
+
) : /* @__PURE__ */ React26.createElement(
|
|
1094
1121
|
ControlToggleButtonGroup,
|
|
1095
1122
|
{
|
|
1096
1123
|
...toggleButtonGroupProps,
|
|
@@ -1103,7 +1130,7 @@ var ToggleControl = createControl(
|
|
|
1103
1130
|
);
|
|
1104
1131
|
|
|
1105
1132
|
// src/controls/number-control.tsx
|
|
1106
|
-
import * as
|
|
1133
|
+
import * as React27 from "react";
|
|
1107
1134
|
import { numberPropTypeUtil } from "@elementor/editor-props";
|
|
1108
1135
|
import { TextField as TextField4 } from "@elementor/ui";
|
|
1109
1136
|
var isEmptyOrNaN = (value) => value === null || value === void 0 || value === "" || Number.isNaN(Number(value));
|
|
@@ -1125,7 +1152,7 @@ var NumberControl = createControl(
|
|
|
1125
1152
|
const formattedValue = shouldForceInt ? +parseInt(eventValue) : Number(eventValue);
|
|
1126
1153
|
setValue(Math.min(Math.max(formattedValue, min), max));
|
|
1127
1154
|
};
|
|
1128
|
-
return /* @__PURE__ */
|
|
1155
|
+
return /* @__PURE__ */ React27.createElement(ControlActions, null, /* @__PURE__ */ React27.createElement(
|
|
1129
1156
|
TextField4,
|
|
1130
1157
|
{
|
|
1131
1158
|
size: "tiny",
|
|
@@ -1141,11 +1168,20 @@ var NumberControl = createControl(
|
|
|
1141
1168
|
);
|
|
1142
1169
|
|
|
1143
1170
|
// src/controls/equal-unequal-sizes-control.tsx
|
|
1144
|
-
import * as
|
|
1171
|
+
import * as React29 from "react";
|
|
1145
1172
|
import { useId as useId2, useRef } from "react";
|
|
1146
1173
|
import { sizePropTypeUtil as sizePropTypeUtil2 } from "@elementor/editor-props";
|
|
1147
|
-
import { bindPopover as bindPopover2, bindToggle, Grid as Grid5, Popover as Popover2, Stack as
|
|
1174
|
+
import { bindPopover as bindPopover2, bindToggle, Grid as Grid5, Popover as Popover2, Stack as Stack7, ToggleButton as ToggleButton2, Tooltip as Tooltip3, usePopupState as usePopupState3 } from "@elementor/ui";
|
|
1148
1175
|
import { __ as __6 } from "@wordpress/i18n";
|
|
1176
|
+
|
|
1177
|
+
// src/components/control-label.tsx
|
|
1178
|
+
import * as React28 from "react";
|
|
1179
|
+
import { Stack as Stack6 } from "@elementor/ui";
|
|
1180
|
+
var ControlLabel = ({ children }) => {
|
|
1181
|
+
return /* @__PURE__ */ React28.createElement(Stack6, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React28.createElement(ControlFormLabel, null, children), /* @__PURE__ */ React28.createElement(ControlAdornments, null));
|
|
1182
|
+
};
|
|
1183
|
+
|
|
1184
|
+
// src/controls/equal-unequal-sizes-control.tsx
|
|
1149
1185
|
var isEqualSizes = (propValue, items) => {
|
|
1150
1186
|
const values = Object.values(propValue);
|
|
1151
1187
|
if (values.length !== items.length) {
|
|
@@ -1199,7 +1235,7 @@ function EqualUnequalSizesControl({
|
|
|
1199
1235
|
return splitEqualValue() ?? null;
|
|
1200
1236
|
};
|
|
1201
1237
|
const isMixed = !!multiSizeValue;
|
|
1202
|
-
return /* @__PURE__ */
|
|
1238
|
+
return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: controlRef }, /* @__PURE__ */ React29.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(ControlLabel, null, label)), /* @__PURE__ */ React29.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(Stack7, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React29.createElement(SizeControl, { placeholder: isMixed ? __6("Mixed", "elementor") : void 0 }), /* @__PURE__ */ React29.createElement(Tooltip3, { title: tooltipLabel, placement: "top" }, /* @__PURE__ */ React29.createElement(
|
|
1203
1239
|
ToggleButton2,
|
|
1204
1240
|
{
|
|
1205
1241
|
size: "tiny",
|
|
@@ -1210,7 +1246,7 @@ function EqualUnequalSizesControl({
|
|
|
1210
1246
|
"aria-label": tooltipLabel
|
|
1211
1247
|
},
|
|
1212
1248
|
icon
|
|
1213
|
-
))))), /* @__PURE__ */
|
|
1249
|
+
))))), /* @__PURE__ */ React29.createElement(
|
|
1214
1250
|
Popover2,
|
|
1215
1251
|
{
|
|
1216
1252
|
disablePortal: true,
|
|
@@ -1229,16 +1265,16 @@ function EqualUnequalSizesControl({
|
|
|
1229
1265
|
paper: { sx: { mt: 0.5, width: controlRef.current?.getBoundingClientRect().width } }
|
|
1230
1266
|
}
|
|
1231
1267
|
},
|
|
1232
|
-
/* @__PURE__ */
|
|
1268
|
+
/* @__PURE__ */ React29.createElement(PropProvider, { propType: multiSizePropType, value: getMultiSizeValues(), setValue: setNestedProp }, /* @__PURE__ */ React29.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React29.createElement(PopoverGridContainer, null, /* @__PURE__ */ React29.createElement(MultiSizeValueControl, { item: items[0] }), /* @__PURE__ */ React29.createElement(MultiSizeValueControl, { item: items[1] })), /* @__PURE__ */ React29.createElement(PopoverGridContainer, null, /* @__PURE__ */ React29.createElement(MultiSizeValueControl, { item: items[2] }), /* @__PURE__ */ React29.createElement(MultiSizeValueControl, { item: items[3] }))))
|
|
1233
1269
|
));
|
|
1234
1270
|
}
|
|
1235
|
-
var MultiSizeValueControl = ({ item }) => /* @__PURE__ */
|
|
1271
|
+
var MultiSizeValueControl = ({ item }) => /* @__PURE__ */ React29.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React29.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(Grid5, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React29.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React29.createElement(ControlFormLabel, null, item.label)), /* @__PURE__ */ React29.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React29.createElement(SizeControl, { startIcon: item.icon })))));
|
|
1236
1272
|
|
|
1237
1273
|
// src/controls/linked-dimensions-control.tsx
|
|
1238
|
-
import * as
|
|
1274
|
+
import * as React30 from "react";
|
|
1239
1275
|
import { dimensionsPropTypeUtil, sizePropTypeUtil as sizePropTypeUtil3 } from "@elementor/editor-props";
|
|
1240
1276
|
import { DetachIcon, LinkIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
1241
|
-
import { Grid as Grid6, Stack as
|
|
1277
|
+
import { Grid as Grid6, Stack as Stack8, ToggleButton as ToggleButton3, Tooltip as Tooltip4 } from "@elementor/ui";
|
|
1242
1278
|
import { __ as __7 } from "@wordpress/i18n";
|
|
1243
1279
|
var LinkedDimensionsControl = createControl(
|
|
1244
1280
|
({
|
|
@@ -1270,7 +1306,7 @@ var LinkedDimensionsControl = createControl(
|
|
|
1270
1306
|
const LinkedIcon = isLinked ? LinkIcon : DetachIcon;
|
|
1271
1307
|
const linkedLabel = __7("Link %s", "elementor").replace("%s", tooltipLabel);
|
|
1272
1308
|
const unlinkedLabel = __7("Unlink %s", "elementor").replace("%s", tooltipLabel);
|
|
1273
|
-
return /* @__PURE__ */
|
|
1309
|
+
return /* @__PURE__ */ React30.createElement(PropProvider, { propType, value: dimensionsValue, setValue: setDimensionsValue }, /* @__PURE__ */ React30.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(ControlLabel, null, label), /* @__PURE__ */ React30.createElement(Tooltip4, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React30.createElement(
|
|
1274
1310
|
ToggleButton3,
|
|
1275
1311
|
{
|
|
1276
1312
|
"aria-label": isLinked ? unlinkedLabel : linkedLabel,
|
|
@@ -1280,36 +1316,36 @@ var LinkedDimensionsControl = createControl(
|
|
|
1280
1316
|
sx: { marginLeft: "auto" },
|
|
1281
1317
|
onChange: onLinkToggle
|
|
1282
1318
|
},
|
|
1283
|
-
/* @__PURE__ */
|
|
1284
|
-
))), /* @__PURE__ */
|
|
1319
|
+
/* @__PURE__ */ React30.createElement(LinkedIcon, { fontSize: "tiny" })
|
|
1320
|
+
))), /* @__PURE__ */ React30.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(ControlFormLabel, null, __7("Top", "elementor"))), /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(
|
|
1285
1321
|
Control3,
|
|
1286
1322
|
{
|
|
1287
1323
|
bind: "block-start",
|
|
1288
|
-
startIcon: /* @__PURE__ */
|
|
1324
|
+
startIcon: /* @__PURE__ */ React30.createElement(SideTopIcon, { fontSize: "tiny" }),
|
|
1289
1325
|
isLinked,
|
|
1290
1326
|
extendedValues
|
|
1291
1327
|
}
|
|
1292
|
-
))), /* @__PURE__ */
|
|
1328
|
+
))), /* @__PURE__ */ React30.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(ControlFormLabel, null, isSiteRtl ? __7("Left", "elementor") : __7("Right", "elementor"))), /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(
|
|
1293
1329
|
Control3,
|
|
1294
1330
|
{
|
|
1295
1331
|
bind: "inline-end",
|
|
1296
|
-
startIcon: isSiteRtl ? /* @__PURE__ */
|
|
1332
|
+
startIcon: isSiteRtl ? /* @__PURE__ */ React30.createElement(SideLeftIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React30.createElement(SideRightIcon, { fontSize: "tiny" }),
|
|
1297
1333
|
isLinked,
|
|
1298
1334
|
extendedValues
|
|
1299
1335
|
}
|
|
1300
|
-
)))), /* @__PURE__ */
|
|
1336
|
+
)))), /* @__PURE__ */ React30.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(ControlFormLabel, null, __7("Bottom", "elementor"))), /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(
|
|
1301
1337
|
Control3,
|
|
1302
1338
|
{
|
|
1303
1339
|
bind: "block-end",
|
|
1304
|
-
startIcon: /* @__PURE__ */
|
|
1340
|
+
startIcon: /* @__PURE__ */ React30.createElement(SideBottomIcon, { fontSize: "tiny" }),
|
|
1305
1341
|
isLinked,
|
|
1306
1342
|
extendedValues
|
|
1307
1343
|
}
|
|
1308
|
-
))), /* @__PURE__ */
|
|
1344
|
+
))), /* @__PURE__ */ React30.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(ControlFormLabel, null, isSiteRtl ? __7("Right", "elementor") : __7("Left", "elementor"))), /* @__PURE__ */ React30.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React30.createElement(
|
|
1309
1345
|
Control3,
|
|
1310
1346
|
{
|
|
1311
1347
|
bind: "inline-start",
|
|
1312
|
-
startIcon: isSiteRtl ? /* @__PURE__ */
|
|
1348
|
+
startIcon: isSiteRtl ? /* @__PURE__ */ React30.createElement(SideRightIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React30.createElement(SideLeftIcon, { fontSize: "tiny" }),
|
|
1313
1349
|
isLinked,
|
|
1314
1350
|
extendedValues
|
|
1315
1351
|
}
|
|
@@ -1323,13 +1359,13 @@ var Control3 = ({
|
|
|
1323
1359
|
extendedValues
|
|
1324
1360
|
}) => {
|
|
1325
1361
|
if (isLinked) {
|
|
1326
|
-
return /* @__PURE__ */
|
|
1362
|
+
return /* @__PURE__ */ React30.createElement(SizeControl, { startIcon, extendedValues });
|
|
1327
1363
|
}
|
|
1328
|
-
return /* @__PURE__ */
|
|
1364
|
+
return /* @__PURE__ */ React30.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React30.createElement(SizeControl, { startIcon, extendedValues }));
|
|
1329
1365
|
};
|
|
1330
1366
|
|
|
1331
1367
|
// src/controls/font-family-control/font-family-control.tsx
|
|
1332
|
-
import * as
|
|
1368
|
+
import * as React31 from "react";
|
|
1333
1369
|
import { useEffect as useEffect3, useRef as useRef2, useState as useState3 } from "react";
|
|
1334
1370
|
import { stringPropTypeUtil as stringPropTypeUtil6 } from "@elementor/editor-props";
|
|
1335
1371
|
import { ChevronDownIcon, SearchIcon, TextIcon, XIcon as XIcon2 } from "@elementor/icons";
|
|
@@ -1344,7 +1380,7 @@ import {
|
|
|
1344
1380
|
MenuList,
|
|
1345
1381
|
MenuSubheader,
|
|
1346
1382
|
Popover as Popover3,
|
|
1347
|
-
Stack as
|
|
1383
|
+
Stack as Stack9,
|
|
1348
1384
|
styled as styled4,
|
|
1349
1385
|
TextField as TextField5,
|
|
1350
1386
|
Typography as Typography2,
|
|
@@ -1391,16 +1427,16 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
|
|
|
1391
1427
|
setSearchValue("");
|
|
1392
1428
|
popoverState.close();
|
|
1393
1429
|
};
|
|
1394
|
-
return /* @__PURE__ */
|
|
1430
|
+
return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(
|
|
1395
1431
|
UnstableTag2,
|
|
1396
1432
|
{
|
|
1397
1433
|
variant: "outlined",
|
|
1398
1434
|
label: fontFamily,
|
|
1399
|
-
endIcon: /* @__PURE__ */
|
|
1435
|
+
endIcon: /* @__PURE__ */ React31.createElement(ChevronDownIcon, { fontSize: "tiny" }),
|
|
1400
1436
|
...bindTrigger3(popoverState),
|
|
1401
1437
|
fullWidth: true
|
|
1402
1438
|
}
|
|
1403
|
-
), /* @__PURE__ */
|
|
1439
|
+
), /* @__PURE__ */ React31.createElement(
|
|
1404
1440
|
Popover3,
|
|
1405
1441
|
{
|
|
1406
1442
|
disablePortal: true,
|
|
@@ -1409,7 +1445,7 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
|
|
|
1409
1445
|
...bindPopover3(popoverState),
|
|
1410
1446
|
onClose: handleClose
|
|
1411
1447
|
},
|
|
1412
|
-
/* @__PURE__ */
|
|
1448
|
+
/* @__PURE__ */ React31.createElement(Stack9, null, /* @__PURE__ */ React31.createElement(Stack9, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React31.createElement(TextIcon, { fontSize: SIZE2, sx: { mr: 0.5 } }), /* @__PURE__ */ React31.createElement(Typography2, { variant: "subtitle2" }, __8("Font Family", "elementor")), /* @__PURE__ */ React31.createElement(IconButton2, { size: SIZE2, sx: { ml: "auto" }, onClick: handleClose }, /* @__PURE__ */ React31.createElement(XIcon2, { fontSize: SIZE2 }))), /* @__PURE__ */ React31.createElement(Box2, { px: 1.5, pb: 1 }, /* @__PURE__ */ React31.createElement(
|
|
1413
1449
|
TextField5,
|
|
1414
1450
|
{
|
|
1415
1451
|
fullWidth: true,
|
|
@@ -1418,10 +1454,10 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
|
|
|
1418
1454
|
placeholder: __8("Search", "elementor"),
|
|
1419
1455
|
onChange: handleSearch,
|
|
1420
1456
|
InputProps: {
|
|
1421
|
-
startAdornment: /* @__PURE__ */
|
|
1457
|
+
startAdornment: /* @__PURE__ */ React31.createElement(InputAdornment3, { position: "start" }, /* @__PURE__ */ React31.createElement(SearchIcon, { fontSize: SIZE2 }))
|
|
1422
1458
|
}
|
|
1423
1459
|
}
|
|
1424
|
-
)), /* @__PURE__ */
|
|
1460
|
+
)), /* @__PURE__ */ React31.createElement(Divider2, null), filteredFontFamilies.length > 0 ? /* @__PURE__ */ React31.createElement(
|
|
1425
1461
|
FontList,
|
|
1426
1462
|
{
|
|
1427
1463
|
fontListItems: filteredFontFamilies,
|
|
@@ -1429,7 +1465,7 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
|
|
|
1429
1465
|
handleClose,
|
|
1430
1466
|
fontFamily
|
|
1431
1467
|
}
|
|
1432
|
-
) : /* @__PURE__ */
|
|
1468
|
+
) : /* @__PURE__ */ React31.createElement(Box2, { sx: { overflowY: "auto", height: 260, width: 220 } }, /* @__PURE__ */ React31.createElement(Stack9, { alignItems: "center", p: 2.5, gap: 1.5, overflow: "hidden" }, /* @__PURE__ */ React31.createElement(TextIcon, { fontSize: "large" }), /* @__PURE__ */ React31.createElement(Box2, { sx: { maxWidth: 160, overflow: "hidden" } }, /* @__PURE__ */ React31.createElement(Typography2, { align: "center", variant: "subtitle2", color: "text.secondary" }, __8("Sorry, nothing matched", "elementor")), /* @__PURE__ */ React31.createElement(
|
|
1433
1469
|
Typography2,
|
|
1434
1470
|
{
|
|
1435
1471
|
variant: "subtitle2",
|
|
@@ -1440,16 +1476,16 @@ var FontFamilyControl = createControl(({ fontFamilies }) => {
|
|
|
1440
1476
|
justifyContent: "center"
|
|
1441
1477
|
}
|
|
1442
1478
|
},
|
|
1443
|
-
/* @__PURE__ */
|
|
1444
|
-
/* @__PURE__ */
|
|
1479
|
+
/* @__PURE__ */ React31.createElement("span", null, "\u201C"),
|
|
1480
|
+
/* @__PURE__ */ React31.createElement(
|
|
1445
1481
|
"span",
|
|
1446
1482
|
{
|
|
1447
1483
|
style: { maxWidth: "80%", overflow: "hidden", textOverflow: "ellipsis" }
|
|
1448
1484
|
},
|
|
1449
1485
|
searchValue
|
|
1450
1486
|
),
|
|
1451
|
-
/* @__PURE__ */
|
|
1452
|
-
)), /* @__PURE__ */
|
|
1487
|
+
/* @__PURE__ */ React31.createElement("span", null, "\u201D.")
|
|
1488
|
+
)), /* @__PURE__ */ React31.createElement(Typography2, { align: "center", variant: "caption", color: "text.secondary" }, __8("Try something else.", "elementor"), /* @__PURE__ */ React31.createElement(
|
|
1453
1489
|
Link,
|
|
1454
1490
|
{
|
|
1455
1491
|
color: "secondary",
|
|
@@ -1489,7 +1525,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1489
1525
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1490
1526
|
[fontFamily]
|
|
1491
1527
|
);
|
|
1492
|
-
return /* @__PURE__ */
|
|
1528
|
+
return /* @__PURE__ */ React31.createElement(
|
|
1493
1529
|
Box2,
|
|
1494
1530
|
{
|
|
1495
1531
|
ref: containerRef,
|
|
@@ -1499,7 +1535,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1499
1535
|
width: 220
|
|
1500
1536
|
}
|
|
1501
1537
|
},
|
|
1502
|
-
/* @__PURE__ */
|
|
1538
|
+
/* @__PURE__ */ React31.createElement(
|
|
1503
1539
|
StyledMenuList,
|
|
1504
1540
|
{
|
|
1505
1541
|
role: "listbox",
|
|
@@ -1515,7 +1551,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1515
1551
|
const isSelected = selectedItem?.value === item.value;
|
|
1516
1552
|
const tabIndexFallback = !selectedItem ? 0 : -1;
|
|
1517
1553
|
if (item.type === "category") {
|
|
1518
|
-
return /* @__PURE__ */
|
|
1554
|
+
return /* @__PURE__ */ React31.createElement(
|
|
1519
1555
|
MenuSubheader,
|
|
1520
1556
|
{
|
|
1521
1557
|
key: virtualRow.key,
|
|
@@ -1526,7 +1562,7 @@ var FontList = ({ fontListItems, setFontFamily, handleClose, fontFamily }) => {
|
|
|
1526
1562
|
item.value
|
|
1527
1563
|
);
|
|
1528
1564
|
}
|
|
1529
|
-
return /* @__PURE__ */
|
|
1565
|
+
return /* @__PURE__ */ React31.createElement(
|
|
1530
1566
|
"li",
|
|
1531
1567
|
{
|
|
1532
1568
|
key: virtualRow.key,
|
|
@@ -1568,7 +1604,9 @@ var StyledMenuList = styled4(MenuList)(({ theme }) => ({
|
|
|
1568
1604
|
position: "absolute",
|
|
1569
1605
|
top: 0,
|
|
1570
1606
|
left: 0,
|
|
1571
|
-
width: "100%"
|
|
1607
|
+
width: "100%",
|
|
1608
|
+
display: "flex",
|
|
1609
|
+
alignItems: "center"
|
|
1572
1610
|
},
|
|
1573
1611
|
'& > [role="option"]': {
|
|
1574
1612
|
...theme.typography.caption,
|
|
@@ -1593,13 +1631,13 @@ var useDebounce = (fn, delay) => {
|
|
|
1593
1631
|
};
|
|
1594
1632
|
|
|
1595
1633
|
// src/controls/url-control.tsx
|
|
1596
|
-
import * as
|
|
1634
|
+
import * as React32 from "react";
|
|
1597
1635
|
import { urlPropTypeUtil } from "@elementor/editor-props";
|
|
1598
1636
|
import { TextField as TextField6 } from "@elementor/ui";
|
|
1599
1637
|
var UrlControl = createControl(({ placeholder }) => {
|
|
1600
1638
|
const { value, setValue } = useBoundProp(urlPropTypeUtil);
|
|
1601
1639
|
const handleChange = (event) => setValue(event.target.value);
|
|
1602
|
-
return /* @__PURE__ */
|
|
1640
|
+
return /* @__PURE__ */ React32.createElement(ControlActions, null, /* @__PURE__ */ React32.createElement(
|
|
1603
1641
|
TextField6,
|
|
1604
1642
|
{
|
|
1605
1643
|
size: "tiny",
|
|
@@ -1612,9 +1650,9 @@ var UrlControl = createControl(({ placeholder }) => {
|
|
|
1612
1650
|
});
|
|
1613
1651
|
|
|
1614
1652
|
// src/controls/link-control.tsx
|
|
1615
|
-
import * as
|
|
1653
|
+
import * as React34 from "react";
|
|
1616
1654
|
import { useMemo, useState as useState4 } from "react";
|
|
1617
|
-
import {
|
|
1655
|
+
import { getLinkInLinkRestriction, selectElement } from "@elementor/editor-elements";
|
|
1618
1656
|
import {
|
|
1619
1657
|
booleanPropTypeUtil,
|
|
1620
1658
|
linkPropTypeUtil,
|
|
@@ -1622,15 +1660,16 @@ import {
|
|
|
1622
1660
|
stringPropTypeUtil as stringPropTypeUtil7,
|
|
1623
1661
|
urlPropTypeUtil as urlPropTypeUtil2
|
|
1624
1662
|
} from "@elementor/editor-props";
|
|
1663
|
+
import { InfoTipCard } from "@elementor/editor-ui";
|
|
1625
1664
|
import { httpService as httpService2 } from "@elementor/http";
|
|
1626
|
-
import { MinusIcon, PlusIcon as PlusIcon2 } from "@elementor/icons";
|
|
1665
|
+
import { AlertTriangleIcon, MinusIcon, PlusIcon as PlusIcon2 } from "@elementor/icons";
|
|
1627
1666
|
import { useSessionStorage } from "@elementor/session";
|
|
1628
|
-
import { Collapse, Divider as Divider3, Grid as Grid7, IconButton as IconButton4, Stack as
|
|
1667
|
+
import { Box as Box4, Collapse, Divider as Divider3, Grid as Grid7, IconButton as IconButton4, Infotip, Stack as Stack10, Switch } from "@elementor/ui";
|
|
1629
1668
|
import { debounce as debounce2 } from "@elementor/utils";
|
|
1630
1669
|
import { __ as __9 } from "@wordpress/i18n";
|
|
1631
1670
|
|
|
1632
1671
|
// src/components/autocomplete.tsx
|
|
1633
|
-
import * as
|
|
1672
|
+
import * as React33 from "react";
|
|
1634
1673
|
import { forwardRef as forwardRef2 } from "react";
|
|
1635
1674
|
import { XIcon as XIcon3 } from "@elementor/icons";
|
|
1636
1675
|
import {
|
|
@@ -1656,7 +1695,7 @@ var Autocomplete = forwardRef2((props, ref) => {
|
|
|
1656
1695
|
const muiWarningPreventer = allowCustomValues || !!value?.toString()?.length;
|
|
1657
1696
|
const isOptionEqualToValue = muiWarningPreventer ? void 0 : () => true;
|
|
1658
1697
|
const isValueFromOptions = typeof value === "number" && !!findMatchingOption(options, value);
|
|
1659
|
-
return /* @__PURE__ */
|
|
1698
|
+
return /* @__PURE__ */ React33.createElement(
|
|
1660
1699
|
AutocompleteBase,
|
|
1661
1700
|
{
|
|
1662
1701
|
...restProps,
|
|
@@ -1674,8 +1713,8 @@ var Autocomplete = forwardRef2((props, ref) => {
|
|
|
1674
1713
|
groupBy: isCategorizedOptionPool(options) ? (optionId) => findMatchingOption(options, optionId)?.groupLabel || optionId : void 0,
|
|
1675
1714
|
isOptionEqualToValue,
|
|
1676
1715
|
filterOptions: () => optionKeys,
|
|
1677
|
-
renderOption: (optionProps, optionId) => /* @__PURE__ */
|
|
1678
|
-
renderInput: (params) => /* @__PURE__ */
|
|
1716
|
+
renderOption: (optionProps, optionId) => /* @__PURE__ */ React33.createElement(Box3, { component: "li", ...optionProps, key: optionProps.id }, findMatchingOption(options, optionId)?.label ?? optionId),
|
|
1717
|
+
renderInput: (params) => /* @__PURE__ */ React33.createElement(
|
|
1679
1718
|
TextInput,
|
|
1680
1719
|
{
|
|
1681
1720
|
params,
|
|
@@ -1698,7 +1737,7 @@ var TextInput = ({
|
|
|
1698
1737
|
const onChange = (event) => {
|
|
1699
1738
|
handleChange(event.target.value);
|
|
1700
1739
|
};
|
|
1701
|
-
return /* @__PURE__ */
|
|
1740
|
+
return /* @__PURE__ */ React33.createElement(
|
|
1702
1741
|
TextField7,
|
|
1703
1742
|
{
|
|
1704
1743
|
...params,
|
|
@@ -1711,7 +1750,7 @@ var TextInput = ({
|
|
|
1711
1750
|
},
|
|
1712
1751
|
InputProps: {
|
|
1713
1752
|
...params.InputProps,
|
|
1714
|
-
endAdornment: /* @__PURE__ */
|
|
1753
|
+
endAdornment: /* @__PURE__ */ React33.createElement(ClearButton, { params, allowClear, handleChange })
|
|
1715
1754
|
}
|
|
1716
1755
|
}
|
|
1717
1756
|
);
|
|
@@ -1720,7 +1759,7 @@ var ClearButton = ({
|
|
|
1720
1759
|
allowClear,
|
|
1721
1760
|
handleChange,
|
|
1722
1761
|
params
|
|
1723
|
-
}) => /* @__PURE__ */
|
|
1762
|
+
}) => /* @__PURE__ */ React33.createElement(InputAdornment4, { position: "end" }, allowClear && /* @__PURE__ */ React33.createElement(IconButton3, { size: params.size, onClick: () => handleChange(null), sx: { cursor: "pointer" } }, /* @__PURE__ */ React33.createElement(XIcon3, { fontSize: params.size })));
|
|
1724
1763
|
function findMatchingOption(options, optionId = null) {
|
|
1725
1764
|
const formattedOption = (optionId || "").toString();
|
|
1726
1765
|
return options.find(({ id }) => formattedOption === id.toString());
|
|
@@ -1743,10 +1782,14 @@ function _factoryFilter(newValue, options, minInputLength) {
|
|
|
1743
1782
|
|
|
1744
1783
|
// src/controls/link-control.tsx
|
|
1745
1784
|
var SIZE3 = "tiny";
|
|
1785
|
+
var learnMoreButton = {
|
|
1786
|
+
label: __9("Learn More", "elementor"),
|
|
1787
|
+
href: "https://go.elementor.com/element-link-inside-link-infotip"
|
|
1788
|
+
};
|
|
1746
1789
|
var LinkControl = createControl((props) => {
|
|
1747
1790
|
const { value, path, setValue, ...propContext } = useBoundProp(linkPropTypeUtil);
|
|
1748
1791
|
const [linkSessionValue, setLinkSessionValue] = useSessionStorage(path.join("/"));
|
|
1749
|
-
const [
|
|
1792
|
+
const [isActive, setIsActive] = useState4(!!value);
|
|
1750
1793
|
const {
|
|
1751
1794
|
allowCustomValues,
|
|
1752
1795
|
queryOptions: { endpoint = "", requestParams = {} },
|
|
@@ -1754,17 +1797,19 @@ var LinkControl = createControl((props) => {
|
|
|
1754
1797
|
minInputLength = 2,
|
|
1755
1798
|
context: { elementId }
|
|
1756
1799
|
} = props || {};
|
|
1800
|
+
const [linkInLinkRestriction, setLinkInLinkRestriction] = useState4(getLinkInLinkRestriction(elementId));
|
|
1757
1801
|
const [options, setOptions] = useState4(
|
|
1758
1802
|
generateFirstLoadedOption(value)
|
|
1759
1803
|
);
|
|
1804
|
+
const shouldDisableAddingLink = !isActive && linkInLinkRestriction.shouldRestrict;
|
|
1760
1805
|
const onEnabledChange = () => {
|
|
1761
|
-
|
|
1762
|
-
if (shouldRestrict && !
|
|
1806
|
+
setLinkInLinkRestriction(getLinkInLinkRestriction(elementId));
|
|
1807
|
+
if (linkInLinkRestriction.shouldRestrict && !isActive) {
|
|
1763
1808
|
return;
|
|
1764
1809
|
}
|
|
1765
|
-
|
|
1766
|
-
setValue(
|
|
1767
|
-
setLinkSessionValue({ value, meta: { isEnabled: !
|
|
1810
|
+
setIsActive((prevState) => !prevState);
|
|
1811
|
+
setValue(isActive ? null : linkSessionValue?.value ?? null);
|
|
1812
|
+
setLinkSessionValue({ value, meta: { isEnabled: !isActive } });
|
|
1768
1813
|
};
|
|
1769
1814
|
const onOptionChange = (newValue) => {
|
|
1770
1815
|
const valueToSave = newValue ? {
|
|
@@ -1804,8 +1849,8 @@ var LinkControl = createControl((props) => {
|
|
|
1804
1849
|
),
|
|
1805
1850
|
[endpoint]
|
|
1806
1851
|
);
|
|
1807
|
-
return /* @__PURE__ */
|
|
1808
|
-
|
|
1852
|
+
return /* @__PURE__ */ React34.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React34.createElement(Stack10, { gap: 1.5 }, /* @__PURE__ */ React34.createElement(Divider3, null), /* @__PURE__ */ React34.createElement(
|
|
1853
|
+
Stack10,
|
|
1809
1854
|
{
|
|
1810
1855
|
direction: "row",
|
|
1811
1856
|
sx: {
|
|
@@ -1813,37 +1858,43 @@ var LinkControl = createControl((props) => {
|
|
|
1813
1858
|
alignItems: "center"
|
|
1814
1859
|
}
|
|
1815
1860
|
},
|
|
1816
|
-
/* @__PURE__ */
|
|
1817
|
-
/* @__PURE__ */
|
|
1861
|
+
/* @__PURE__ */ React34.createElement(ControlFormLabel, null, __9("Link", "elementor")),
|
|
1862
|
+
/* @__PURE__ */ React34.createElement(ConditionalInfoTip, { isVisible: !isActive, linkInLinkRestriction }, /* @__PURE__ */ React34.createElement(
|
|
1818
1863
|
ToggleIconControl,
|
|
1819
1864
|
{
|
|
1820
|
-
|
|
1865
|
+
disabled: shouldDisableAddingLink,
|
|
1866
|
+
active: isActive,
|
|
1821
1867
|
onIconClick: onEnabledChange,
|
|
1822
1868
|
label: __9("Toggle link", "elementor")
|
|
1823
1869
|
}
|
|
1824
|
-
)
|
|
1825
|
-
), /* @__PURE__ */
|
|
1870
|
+
))
|
|
1871
|
+
), /* @__PURE__ */ React34.createElement(Collapse, { in: isActive, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React34.createElement(Stack10, { gap: 1.5 }, /* @__PURE__ */ React34.createElement(PropKeyProvider, { bind: "destination" }, /* @__PURE__ */ React34.createElement(ControlActions, null, /* @__PURE__ */ React34.createElement(
|
|
1826
1872
|
Autocomplete,
|
|
1827
1873
|
{
|
|
1828
1874
|
options,
|
|
1829
1875
|
allowCustomValues,
|
|
1830
1876
|
placeholder,
|
|
1831
|
-
value: value?.destination?.value,
|
|
1877
|
+
value: value?.destination?.value?.settings?.label || value?.destination?.value,
|
|
1832
1878
|
onOptionChange,
|
|
1833
1879
|
onTextChange,
|
|
1834
1880
|
minInputLength
|
|
1835
1881
|
}
|
|
1836
|
-
))), /* @__PURE__ */
|
|
1882
|
+
))), /* @__PURE__ */ React34.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React34.createElement(SwitchControl, { disabled: !value }))))));
|
|
1837
1883
|
});
|
|
1838
|
-
var ToggleIconControl = ({
|
|
1839
|
-
return /* @__PURE__ */
|
|
1884
|
+
var ToggleIconControl = ({ disabled, active, onIconClick, label }) => {
|
|
1885
|
+
return /* @__PURE__ */ React34.createElement(IconButton4, { size: SIZE3, onClick: onIconClick, "aria-label": label, disabled }, active ? /* @__PURE__ */ React34.createElement(MinusIcon, { fontSize: SIZE3 }) : /* @__PURE__ */ React34.createElement(PlusIcon2, { fontSize: SIZE3 }));
|
|
1840
1886
|
};
|
|
1841
|
-
var SwitchControl = () => {
|
|
1887
|
+
var SwitchControl = ({ disabled }) => {
|
|
1842
1888
|
const { value = false, setValue } = useBoundProp(booleanPropTypeUtil);
|
|
1843
1889
|
const onClick = () => {
|
|
1844
1890
|
setValue(!value);
|
|
1845
1891
|
};
|
|
1846
|
-
|
|
1892
|
+
const inputProps = disabled ? {
|
|
1893
|
+
style: {
|
|
1894
|
+
opacity: 0
|
|
1895
|
+
}
|
|
1896
|
+
} : {};
|
|
1897
|
+
return /* @__PURE__ */ React34.createElement(Grid7, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React34.createElement(Grid7, { item: true }, /* @__PURE__ */ React34.createElement(ControlFormLabel, null, __9("Open in a new tab", "elementor"))), /* @__PURE__ */ React34.createElement(Grid7, { item: true }, /* @__PURE__ */ React34.createElement(Switch, { checked: value, onClick, disabled, inputProps })));
|
|
1847
1898
|
};
|
|
1848
1899
|
async function fetchOptions(ajaxUrl, params) {
|
|
1849
1900
|
if (!params || !ajaxUrl) {
|
|
@@ -1873,12 +1924,43 @@ function generateFirstLoadedOption(unionValue) {
|
|
|
1873
1924
|
}
|
|
1874
1925
|
] : [];
|
|
1875
1926
|
}
|
|
1927
|
+
var ConditionalInfoTip = ({ linkInLinkRestriction, isVisible, children }) => {
|
|
1928
|
+
const { shouldRestrict, reason, elementId } = linkInLinkRestriction;
|
|
1929
|
+
const handleTakeMeClick = () => {
|
|
1930
|
+
if (elementId) {
|
|
1931
|
+
selectElement(elementId);
|
|
1932
|
+
}
|
|
1933
|
+
};
|
|
1934
|
+
return shouldRestrict && isVisible ? /* @__PURE__ */ React34.createElement(
|
|
1935
|
+
Infotip,
|
|
1936
|
+
{
|
|
1937
|
+
placement: "right",
|
|
1938
|
+
content: /* @__PURE__ */ React34.createElement(
|
|
1939
|
+
InfoTipCard,
|
|
1940
|
+
{
|
|
1941
|
+
content: INFOTIP_CONTENT[reason],
|
|
1942
|
+
svgIcon: /* @__PURE__ */ React34.createElement(AlertTriangleIcon, null),
|
|
1943
|
+
learnMoreButton,
|
|
1944
|
+
ctaButton: {
|
|
1945
|
+
label: __9("Take me there", "elementor"),
|
|
1946
|
+
onClick: handleTakeMeClick
|
|
1947
|
+
}
|
|
1948
|
+
}
|
|
1949
|
+
)
|
|
1950
|
+
},
|
|
1951
|
+
/* @__PURE__ */ React34.createElement(Box4, null, children)
|
|
1952
|
+
) : /* @__PURE__ */ React34.createElement(React34.Fragment, null, children);
|
|
1953
|
+
};
|
|
1954
|
+
var INFOTIP_CONTENT = {
|
|
1955
|
+
descendant: /* @__PURE__ */ React34.createElement(React34.Fragment, null, __9("To add a link to this container,", "elementor"), /* @__PURE__ */ React34.createElement("br", null), __9("first remove the link from the elements inside of it.", "elementor")),
|
|
1956
|
+
ancestor: /* @__PURE__ */ React34.createElement(React34.Fragment, null, __9("To add a link to this element,", "elementor"), /* @__PURE__ */ React34.createElement("br", null), __9("first remove the link from its parent container.", "elementor"))
|
|
1957
|
+
};
|
|
1876
1958
|
|
|
1877
1959
|
// src/controls/gap-control.tsx
|
|
1878
|
-
import * as
|
|
1960
|
+
import * as React35 from "react";
|
|
1879
1961
|
import { layoutDirectionPropTypeUtil, sizePropTypeUtil as sizePropTypeUtil4 } from "@elementor/editor-props";
|
|
1880
1962
|
import { DetachIcon as DetachIcon2, LinkIcon as LinkIcon2 } from "@elementor/icons";
|
|
1881
|
-
import { Grid as Grid8, Stack as
|
|
1963
|
+
import { Grid as Grid8, Stack as Stack11, ToggleButton as ToggleButton4, Tooltip as Tooltip5 } from "@elementor/ui";
|
|
1882
1964
|
import { __ as __10 } from "@wordpress/i18n";
|
|
1883
1965
|
var GapControl = createControl(({ label }) => {
|
|
1884
1966
|
const {
|
|
@@ -1903,7 +1985,7 @@ var GapControl = createControl(({ label }) => {
|
|
|
1903
1985
|
const LinkedIcon = isLinked ? LinkIcon2 : DetachIcon2;
|
|
1904
1986
|
const linkedLabel = __10("Link %s", "elementor").replace("%s", tooltipLabel);
|
|
1905
1987
|
const unlinkedLabel = __10("Unlink %s", "elementor").replace("%s", tooltipLabel);
|
|
1906
|
-
return /* @__PURE__ */
|
|
1988
|
+
return /* @__PURE__ */ React35.createElement(PropProvider, { propType, value: directionValue, setValue: setDirectionValue }, /* @__PURE__ */ React35.createElement(Stack11, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(ControlLabel, null, label), /* @__PURE__ */ React35.createElement(Tooltip5, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React35.createElement(
|
|
1907
1989
|
ToggleButton4,
|
|
1908
1990
|
{
|
|
1909
1991
|
"aria-label": isLinked ? unlinkedLabel : linkedLabel,
|
|
@@ -1913,27 +1995,27 @@ var GapControl = createControl(({ label }) => {
|
|
|
1913
1995
|
sx: { marginLeft: "auto" },
|
|
1914
1996
|
onChange: onLinkToggle
|
|
1915
1997
|
},
|
|
1916
|
-
/* @__PURE__ */
|
|
1917
|
-
))), /* @__PURE__ */
|
|
1998
|
+
/* @__PURE__ */ React35.createElement(LinkedIcon, { fontSize: "tiny" })
|
|
1999
|
+
))), /* @__PURE__ */ React35.createElement(Stack11, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(Grid8, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React35.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(ControlFormLabel, null, __10("Column", "elementor"))), /* @__PURE__ */ React35.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(Control4, { bind: "column", isLinked }))), /* @__PURE__ */ React35.createElement(Grid8, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React35.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(ControlFormLabel, null, __10("Row", "elementor"))), /* @__PURE__ */ React35.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React35.createElement(Control4, { bind: "row", isLinked })))));
|
|
1918
2000
|
});
|
|
1919
2001
|
var Control4 = ({ bind, isLinked }) => {
|
|
1920
2002
|
if (isLinked) {
|
|
1921
|
-
return /* @__PURE__ */
|
|
2003
|
+
return /* @__PURE__ */ React35.createElement(SizeControl, null);
|
|
1922
2004
|
}
|
|
1923
|
-
return /* @__PURE__ */
|
|
2005
|
+
return /* @__PURE__ */ React35.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React35.createElement(SizeControl, null));
|
|
1924
2006
|
};
|
|
1925
2007
|
|
|
1926
2008
|
// src/controls/svg-media-control.tsx
|
|
1927
|
-
import * as
|
|
2009
|
+
import * as React37 from "react";
|
|
1928
2010
|
import { useState as useState6 } from "react";
|
|
1929
2011
|
import { imageSrcPropTypeUtil as imageSrcPropTypeUtil2 } from "@elementor/editor-props";
|
|
1930
2012
|
import { UploadIcon as UploadIcon2 } from "@elementor/icons";
|
|
1931
|
-
import { Button as Button4, Card as Card2, CardMedia as CardMedia2, CardOverlay as CardOverlay2, CircularProgress as CircularProgress3, Stack as
|
|
2013
|
+
import { Button as Button4, Card as Card2, CardMedia as CardMedia2, CardOverlay as CardOverlay2, CircularProgress as CircularProgress3, Stack as Stack12, styled as styled5 } from "@elementor/ui";
|
|
1932
2014
|
import { useWpMediaAttachment as useWpMediaAttachment2, useWpMediaFrame as useWpMediaFrame2 } from "@elementor/wp-media";
|
|
1933
2015
|
import { __ as __12 } from "@wordpress/i18n";
|
|
1934
2016
|
|
|
1935
2017
|
// src/components/enable-unfiltered-modal.tsx
|
|
1936
|
-
import * as
|
|
2018
|
+
import * as React36 from "react";
|
|
1937
2019
|
import { useState as useState5 } from "react";
|
|
1938
2020
|
import { useCurrentUserCapabilities } from "@elementor/editor-current-user";
|
|
1939
2021
|
import {
|
|
@@ -1986,9 +2068,9 @@ var EnableUnfilteredModal = (props) => {
|
|
|
1986
2068
|
}
|
|
1987
2069
|
};
|
|
1988
2070
|
const dialogProps = { ...props, isPending, handleEnable, isError, onClose };
|
|
1989
|
-
return canManageOptions ? /* @__PURE__ */
|
|
2071
|
+
return canManageOptions ? /* @__PURE__ */ React36.createElement(AdminDialog, { ...dialogProps }) : /* @__PURE__ */ React36.createElement(NonAdminDialog, { ...dialogProps });
|
|
1990
2072
|
};
|
|
1991
|
-
var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */
|
|
2073
|
+
var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */ React36.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React36.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React36.createElement(DialogTitle, null, ADMIN_TITLE_TEXT)), /* @__PURE__ */ React36.createElement(Divider4, null), /* @__PURE__ */ React36.createElement(DialogContent, null, /* @__PURE__ */ React36.createElement(DialogContentText, null, isError ? /* @__PURE__ */ React36.createElement(React36.Fragment, null, ADMIN_FAILED_CONTENT_TEXT_PT1, " ", /* @__PURE__ */ React36.createElement("br", null), " ", ADMIN_FAILED_CONTENT_TEXT_PT2) : ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React36.createElement(DialogActions, null, /* @__PURE__ */ React36.createElement(Button3, { size: "medium", color: "secondary", onClick: () => onClose(false) }, __11("Cancel", "elementor")), /* @__PURE__ */ React36.createElement(
|
|
1992
2074
|
Button3,
|
|
1993
2075
|
{
|
|
1994
2076
|
size: "medium",
|
|
@@ -1997,9 +2079,9 @@ var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @_
|
|
|
1997
2079
|
color: "primary",
|
|
1998
2080
|
disabled: isPending
|
|
1999
2081
|
},
|
|
2000
|
-
isPending ? /* @__PURE__ */
|
|
2082
|
+
isPending ? /* @__PURE__ */ React36.createElement(CircularProgress2, { size: 24 }) : __11("Enable", "elementor")
|
|
2001
2083
|
)));
|
|
2002
|
-
var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */
|
|
2084
|
+
var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */ React36.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React36.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React36.createElement(DialogTitle, null, NON_ADMIN_TITLE_TEXT)), /* @__PURE__ */ React36.createElement(Divider4, null), /* @__PURE__ */ React36.createElement(DialogContent, null, /* @__PURE__ */ React36.createElement(DialogContentText, null, NON_ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React36.createElement(DialogActions, null, /* @__PURE__ */ React36.createElement(Button3, { size: "medium", onClick: () => onClose(false), variant: "contained", color: "primary" }, __11("Got it", "elementor"))));
|
|
2003
2085
|
|
|
2004
2086
|
// src/controls/svg-media-control.tsx
|
|
2005
2087
|
var TILE_SIZE = 8;
|
|
@@ -2015,7 +2097,7 @@ var StyledCard = styled5(Card2)`
|
|
|
2015
2097
|
${TILE_SIZE / 2}px ${TILE_SIZE / 2}px;
|
|
2016
2098
|
border: none;
|
|
2017
2099
|
`;
|
|
2018
|
-
var StyledCardMediaContainer = styled5(
|
|
2100
|
+
var StyledCardMediaContainer = styled5(Stack12)`
|
|
2019
2101
|
position: relative;
|
|
2020
2102
|
height: 140px;
|
|
2021
2103
|
object-fit: contain;
|
|
@@ -2060,7 +2142,7 @@ var SvgMediaControl = createControl(() => {
|
|
|
2060
2142
|
open(openOptions);
|
|
2061
2143
|
}
|
|
2062
2144
|
};
|
|
2063
|
-
return /* @__PURE__ */
|
|
2145
|
+
return /* @__PURE__ */ React37.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React37.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: onCloseUnfilteredModal }), /* @__PURE__ */ React37.createElement(ControlFormLabel, null, " ", __12("SVG", "elementor"), " "), /* @__PURE__ */ React37.createElement(ControlActions, null, /* @__PURE__ */ React37.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React37.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React37.createElement(CircularProgress3, { role: "progressbar" }) : /* @__PURE__ */ React37.createElement(
|
|
2064
2146
|
CardMedia2,
|
|
2065
2147
|
{
|
|
2066
2148
|
component: "img",
|
|
@@ -2068,7 +2150,7 @@ var SvgMediaControl = createControl(() => {
|
|
|
2068
2150
|
alt: __12("Preview SVG", "elementor"),
|
|
2069
2151
|
sx: { maxHeight: "140px", width: "50px" }
|
|
2070
2152
|
}
|
|
2071
|
-
)), /* @__PURE__ */
|
|
2153
|
+
)), /* @__PURE__ */ React37.createElement(
|
|
2072
2154
|
CardOverlay2,
|
|
2073
2155
|
{
|
|
2074
2156
|
sx: {
|
|
@@ -2077,7 +2159,7 @@ var SvgMediaControl = createControl(() => {
|
|
|
2077
2159
|
}
|
|
2078
2160
|
}
|
|
2079
2161
|
},
|
|
2080
|
-
/* @__PURE__ */
|
|
2162
|
+
/* @__PURE__ */ React37.createElement(Stack12, { gap: 1 }, /* @__PURE__ */ React37.createElement(
|
|
2081
2163
|
Button4,
|
|
2082
2164
|
{
|
|
2083
2165
|
size: "tiny",
|
|
@@ -2086,13 +2168,13 @@ var SvgMediaControl = createControl(() => {
|
|
|
2086
2168
|
onClick: () => handleClick(MODE_BROWSE)
|
|
2087
2169
|
},
|
|
2088
2170
|
__12("Select SVG", "elementor")
|
|
2089
|
-
), /* @__PURE__ */
|
|
2171
|
+
), /* @__PURE__ */ React37.createElement(
|
|
2090
2172
|
Button4,
|
|
2091
2173
|
{
|
|
2092
2174
|
size: "tiny",
|
|
2093
2175
|
variant: "text",
|
|
2094
2176
|
color: "inherit",
|
|
2095
|
-
startIcon: /* @__PURE__ */
|
|
2177
|
+
startIcon: /* @__PURE__ */ React37.createElement(UploadIcon2, null),
|
|
2096
2178
|
onClick: () => handleClick(MODE_UPLOAD)
|
|
2097
2179
|
},
|
|
2098
2180
|
__12("Upload", "elementor")
|
|
@@ -2101,20 +2183,20 @@ var SvgMediaControl = createControl(() => {
|
|
|
2101
2183
|
});
|
|
2102
2184
|
|
|
2103
2185
|
// src/controls/background-control/background-control.tsx
|
|
2104
|
-
import * as
|
|
2186
|
+
import * as React44 from "react";
|
|
2105
2187
|
import { backgroundPropTypeUtil } from "@elementor/editor-props";
|
|
2106
2188
|
import { Grid as Grid14 } from "@elementor/ui";
|
|
2107
2189
|
import { __ as __18 } from "@wordpress/i18n";
|
|
2108
2190
|
|
|
2109
2191
|
// src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx
|
|
2110
|
-
import * as
|
|
2192
|
+
import * as React43 from "react";
|
|
2111
2193
|
import {
|
|
2112
2194
|
backgroundColorOverlayPropTypeUtil as backgroundColorOverlayPropTypeUtil2,
|
|
2113
2195
|
backgroundImageOverlayPropTypeUtil as backgroundImageOverlayPropTypeUtil2,
|
|
2114
2196
|
backgroundOverlayPropTypeUtil,
|
|
2115
2197
|
colorPropTypeUtil as colorPropTypeUtil3
|
|
2116
2198
|
} from "@elementor/editor-props";
|
|
2117
|
-
import { Box as
|
|
2199
|
+
import { Box as Box5, CardMedia as CardMedia3, Grid as Grid13, styled as styled6, Tab, TabPanel, Tabs, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
|
|
2118
2200
|
import { useWpMediaAttachment as useWpMediaAttachment3 } from "@elementor/wp-media";
|
|
2119
2201
|
import { __ as __17 } from "@wordpress/i18n";
|
|
2120
2202
|
|
|
@@ -2123,7 +2205,7 @@ import { parseEnv } from "@elementor/env";
|
|
|
2123
2205
|
var { env } = parseEnv("@elementor/editor-controls");
|
|
2124
2206
|
|
|
2125
2207
|
// src/controls/background-control/background-gradient-color-control.tsx
|
|
2126
|
-
import * as
|
|
2208
|
+
import * as React38 from "react";
|
|
2127
2209
|
import {
|
|
2128
2210
|
backgroundGradientOverlayPropTypeUtil,
|
|
2129
2211
|
colorPropTypeUtil as colorPropTypeUtil2,
|
|
@@ -2170,7 +2252,7 @@ var BackgroundGradientColorControl = createControl(() => {
|
|
|
2170
2252
|
positions: positions?.value.split(" ")
|
|
2171
2253
|
};
|
|
2172
2254
|
};
|
|
2173
|
-
return /* @__PURE__ */
|
|
2255
|
+
return /* @__PURE__ */ React38.createElement(ControlActions, null, /* @__PURE__ */ React38.createElement(
|
|
2174
2256
|
UnstableGradientBox,
|
|
2175
2257
|
{
|
|
2176
2258
|
sx: { width: "auto", padding: 1.5 },
|
|
@@ -2195,7 +2277,7 @@ var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.cre
|
|
|
2195
2277
|
});
|
|
2196
2278
|
|
|
2197
2279
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx
|
|
2198
|
-
import * as
|
|
2280
|
+
import * as React39 from "react";
|
|
2199
2281
|
import { PinIcon, PinnedOffIcon } from "@elementor/icons";
|
|
2200
2282
|
import { Grid as Grid9 } from "@elementor/ui";
|
|
2201
2283
|
import { __ as __13 } from "@wordpress/i18n";
|
|
@@ -2203,22 +2285,22 @@ var attachmentControlOptions = [
|
|
|
2203
2285
|
{
|
|
2204
2286
|
value: "fixed",
|
|
2205
2287
|
label: __13("Fixed", "elementor"),
|
|
2206
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2288
|
+
renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(PinIcon, { fontSize: size }),
|
|
2207
2289
|
showTooltip: true
|
|
2208
2290
|
},
|
|
2209
2291
|
{
|
|
2210
2292
|
value: "scroll",
|
|
2211
2293
|
label: __13("Scroll", "elementor"),
|
|
2212
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2294
|
+
renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(PinnedOffIcon, { fontSize: size }),
|
|
2213
2295
|
showTooltip: true
|
|
2214
2296
|
}
|
|
2215
2297
|
];
|
|
2216
2298
|
var BackgroundImageOverlayAttachment = () => {
|
|
2217
|
-
return /* @__PURE__ */
|
|
2299
|
+
return /* @__PURE__ */ React39.createElement(PopoverGridContainer, null, /* @__PURE__ */ React39.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlFormLabel, null, __13("Attachment", "elementor"))), /* @__PURE__ */ React39.createElement(Grid9, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React39.createElement(ToggleControl, { options: attachmentControlOptions })));
|
|
2218
2300
|
};
|
|
2219
2301
|
|
|
2220
2302
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
|
|
2221
|
-
import * as
|
|
2303
|
+
import * as React40 from "react";
|
|
2222
2304
|
import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil9 } from "@elementor/editor-props";
|
|
2223
2305
|
import { MenuListItem as MenuListItem3 } from "@elementor/editor-ui";
|
|
2224
2306
|
import { LetterXIcon, LetterYIcon } from "@elementor/icons";
|
|
@@ -2248,7 +2330,7 @@ var BackgroundImageOverlayPosition = () => {
|
|
|
2248
2330
|
stringPropContext.setValue(value);
|
|
2249
2331
|
}
|
|
2250
2332
|
};
|
|
2251
|
-
return /* @__PURE__ */
|
|
2333
|
+
return /* @__PURE__ */ React40.createElement(Grid10, { container: true, spacing: 1.5 }, /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React40.createElement(PopoverGridContainer, null, /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlFormLabel, null, __14("Position", "elementor"))), /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React40.createElement(
|
|
2252
2334
|
Select2,
|
|
2253
2335
|
{
|
|
2254
2336
|
size: "tiny",
|
|
@@ -2256,12 +2338,12 @@ var BackgroundImageOverlayPosition = () => {
|
|
|
2256
2338
|
onChange: handlePositionChange,
|
|
2257
2339
|
fullWidth: true
|
|
2258
2340
|
},
|
|
2259
|
-
backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */
|
|
2260
|
-
)))), isCustom ? /* @__PURE__ */
|
|
2341
|
+
backgroundPositionOptions.map(({ label, value }) => /* @__PURE__ */ React40.createElement(MenuListItem3, { key: value, value: value ?? "" }, label))
|
|
2342
|
+
)))), isCustom ? /* @__PURE__ */ React40.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React40.createElement(Grid10, { container: true, spacing: 1.5 }, /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React40.createElement(SizeControl, { startIcon: /* @__PURE__ */ React40.createElement(LetterXIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React40.createElement(SizeControl, { startIcon: /* @__PURE__ */ React40.createElement(LetterYIcon, { fontSize: "tiny" }) })))))) : null);
|
|
2261
2343
|
};
|
|
2262
2344
|
|
|
2263
2345
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx
|
|
2264
|
-
import * as
|
|
2346
|
+
import * as React41 from "react";
|
|
2265
2347
|
import { DotsHorizontalIcon, DotsVerticalIcon, GridDotsIcon, XIcon as XIcon4 } from "@elementor/icons";
|
|
2266
2348
|
import { Grid as Grid11 } from "@elementor/ui";
|
|
2267
2349
|
import { __ as __15 } from "@wordpress/i18n";
|
|
@@ -2269,34 +2351,34 @@ var repeatControlOptions = [
|
|
|
2269
2351
|
{
|
|
2270
2352
|
value: "repeat",
|
|
2271
2353
|
label: __15("Repeat", "elementor"),
|
|
2272
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2354
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(GridDotsIcon, { fontSize: size }),
|
|
2273
2355
|
showTooltip: true
|
|
2274
2356
|
},
|
|
2275
2357
|
{
|
|
2276
2358
|
value: "repeat-x",
|
|
2277
2359
|
label: __15("Repeat-x", "elementor"),
|
|
2278
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2360
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(DotsHorizontalIcon, { fontSize: size }),
|
|
2279
2361
|
showTooltip: true
|
|
2280
2362
|
},
|
|
2281
2363
|
{
|
|
2282
2364
|
value: "repeat-y",
|
|
2283
2365
|
label: __15("Repeat-y", "elementor"),
|
|
2284
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2366
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(DotsVerticalIcon, { fontSize: size }),
|
|
2285
2367
|
showTooltip: true
|
|
2286
2368
|
},
|
|
2287
2369
|
{
|
|
2288
2370
|
value: "no-repeat",
|
|
2289
2371
|
label: __15("No-repeat", "elementor"),
|
|
2290
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2372
|
+
renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(XIcon4, { fontSize: size }),
|
|
2291
2373
|
showTooltip: true
|
|
2292
2374
|
}
|
|
2293
2375
|
];
|
|
2294
2376
|
var BackgroundImageOverlayRepeat = () => {
|
|
2295
|
-
return /* @__PURE__ */
|
|
2377
|
+
return /* @__PURE__ */ React41.createElement(PopoverGridContainer, null, /* @__PURE__ */ React41.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlFormLabel, null, __15("Repeat", "elementor"))), /* @__PURE__ */ React41.createElement(Grid11, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React41.createElement(ToggleControl, { options: repeatControlOptions })));
|
|
2296
2378
|
};
|
|
2297
2379
|
|
|
2298
2380
|
// src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
|
|
2299
|
-
import * as
|
|
2381
|
+
import * as React42 from "react";
|
|
2300
2382
|
import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
|
|
2301
2383
|
import {
|
|
2302
2384
|
ArrowBarBothIcon,
|
|
@@ -2312,25 +2394,25 @@ var sizeControlOptions = [
|
|
|
2312
2394
|
{
|
|
2313
2395
|
value: "auto",
|
|
2314
2396
|
label: __16("Auto", "elementor"),
|
|
2315
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2397
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(LetterAIcon, { fontSize: size }),
|
|
2316
2398
|
showTooltip: true
|
|
2317
2399
|
},
|
|
2318
2400
|
{
|
|
2319
2401
|
value: "cover",
|
|
2320
2402
|
label: __16("Cover", "elementor"),
|
|
2321
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2403
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(ArrowsMaximizeIcon, { fontSize: size }),
|
|
2322
2404
|
showTooltip: true
|
|
2323
2405
|
},
|
|
2324
2406
|
{
|
|
2325
2407
|
value: "contain",
|
|
2326
2408
|
label: __16("Contain", "elementor"),
|
|
2327
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2409
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(ArrowBarBothIcon, { fontSize: size }),
|
|
2328
2410
|
showTooltip: true
|
|
2329
2411
|
},
|
|
2330
2412
|
{
|
|
2331
2413
|
value: "custom",
|
|
2332
2414
|
label: __16("Custom", "elementor"),
|
|
2333
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2415
|
+
renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(PencilIcon, { fontSize: size }),
|
|
2334
2416
|
showTooltip: true
|
|
2335
2417
|
}
|
|
2336
2418
|
];
|
|
@@ -2345,7 +2427,7 @@ var BackgroundImageOverlaySize = () => {
|
|
|
2345
2427
|
stringPropContext.setValue(size);
|
|
2346
2428
|
}
|
|
2347
2429
|
};
|
|
2348
|
-
return /* @__PURE__ */
|
|
2430
|
+
return /* @__PURE__ */ React42.createElement(Grid12, { container: true, spacing: 1.5 }, /* @__PURE__ */ React42.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(PopoverGridContainer, null, /* @__PURE__ */ React42.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlFormLabel, null, __16("Size", "elementor"))), /* @__PURE__ */ React42.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React42.createElement(
|
|
2349
2431
|
ControlToggleButtonGroup,
|
|
2350
2432
|
{
|
|
2351
2433
|
exclusive: true,
|
|
@@ -2353,16 +2435,16 @@ var BackgroundImageOverlaySize = () => {
|
|
|
2353
2435
|
value: backgroundImageScaleContext.value ? "custom" : stringPropContext.value,
|
|
2354
2436
|
onChange: handleSizeChange
|
|
2355
2437
|
}
|
|
2356
|
-
)))), isCustom ? /* @__PURE__ */
|
|
2438
|
+
)))), isCustom ? /* @__PURE__ */ React42.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React42.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(PopoverGridContainer, null, /* @__PURE__ */ React42.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React42.createElement(
|
|
2357
2439
|
SizeControl,
|
|
2358
2440
|
{
|
|
2359
|
-
startIcon: /* @__PURE__ */
|
|
2441
|
+
startIcon: /* @__PURE__ */ React42.createElement(ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
|
|
2360
2442
|
extendedValues: ["auto"]
|
|
2361
2443
|
}
|
|
2362
|
-
))), /* @__PURE__ */
|
|
2444
|
+
))), /* @__PURE__ */ React42.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React42.createElement(
|
|
2363
2445
|
SizeControl,
|
|
2364
2446
|
{
|
|
2365
|
-
startIcon: /* @__PURE__ */
|
|
2447
|
+
startIcon: /* @__PURE__ */ React42.createElement(ArrowsMoveVerticalIcon, { fontSize: "tiny" }),
|
|
2366
2448
|
extendedValues: ["auto"]
|
|
2367
2449
|
}
|
|
2368
2450
|
)))))) : null);
|
|
@@ -2469,7 +2551,7 @@ var backgroundResolutionOptions = [
|
|
|
2469
2551
|
];
|
|
2470
2552
|
var BackgroundOverlayRepeaterControl = createControl(() => {
|
|
2471
2553
|
const { propType, value: overlayValues, setValue } = useBoundProp(backgroundOverlayPropTypeUtil);
|
|
2472
|
-
return /* @__PURE__ */
|
|
2554
|
+
return /* @__PURE__ */ React43.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React43.createElement(
|
|
2473
2555
|
Repeater,
|
|
2474
2556
|
{
|
|
2475
2557
|
openOnAdd: true,
|
|
@@ -2486,7 +2568,7 @@ var BackgroundOverlayRepeaterControl = createControl(() => {
|
|
|
2486
2568
|
));
|
|
2487
2569
|
});
|
|
2488
2570
|
var ItemContent2 = ({ bind }) => {
|
|
2489
|
-
return /* @__PURE__ */
|
|
2571
|
+
return /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React43.createElement(Content2, null));
|
|
2490
2572
|
};
|
|
2491
2573
|
var Content2 = () => {
|
|
2492
2574
|
const { getTabsProps, getTabProps, getTabPanelProps } = useBackgroundTabsHistory({
|
|
@@ -2494,7 +2576,7 @@ var Content2 = () => {
|
|
|
2494
2576
|
color: initialBackgroundColorOverlay.value,
|
|
2495
2577
|
gradient: initialBackgroundGradientOverlay.value
|
|
2496
2578
|
});
|
|
2497
|
-
return /* @__PURE__ */
|
|
2579
|
+
return /* @__PURE__ */ React43.createElement(Box5, { sx: { width: "100%" } }, /* @__PURE__ */ React43.createElement(Box5, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React43.createElement(
|
|
2498
2580
|
Tabs,
|
|
2499
2581
|
{
|
|
2500
2582
|
size: "small",
|
|
@@ -2502,19 +2584,19 @@ var Content2 = () => {
|
|
|
2502
2584
|
...getTabsProps(),
|
|
2503
2585
|
"aria-label": __17("Background Overlay", "elementor")
|
|
2504
2586
|
},
|
|
2505
|
-
/* @__PURE__ */
|
|
2506
|
-
/* @__PURE__ */
|
|
2507
|
-
/* @__PURE__ */
|
|
2508
|
-
)), /* @__PURE__ */
|
|
2587
|
+
/* @__PURE__ */ React43.createElement(Tab, { label: __17("Image", "elementor"), ...getTabProps("image") }),
|
|
2588
|
+
/* @__PURE__ */ React43.createElement(Tab, { label: __17("Gradient", "elementor"), ...getTabProps("gradient") }),
|
|
2589
|
+
/* @__PURE__ */ React43.createElement(Tab, { label: __17("Color", "elementor"), ...getTabProps("color") })
|
|
2590
|
+
)), /* @__PURE__ */ React43.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React43.createElement(PopoverContent, null, /* @__PURE__ */ React43.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React43.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React43.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React43.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React43.createElement(PopoverContent, null, /* @__PURE__ */ React43.createElement(ColorOverlayContent, null))));
|
|
2509
2591
|
};
|
|
2510
2592
|
var ItemIcon2 = ({ value }) => {
|
|
2511
2593
|
switch (value.$$type) {
|
|
2512
2594
|
case "background-image-overlay":
|
|
2513
|
-
return /* @__PURE__ */
|
|
2595
|
+
return /* @__PURE__ */ React43.createElement(ItemIconImage, { value });
|
|
2514
2596
|
case "background-color-overlay":
|
|
2515
|
-
return /* @__PURE__ */
|
|
2597
|
+
return /* @__PURE__ */ React43.createElement(ItemIconColor, { value });
|
|
2516
2598
|
case "background-gradient-overlay":
|
|
2517
|
-
return /* @__PURE__ */
|
|
2599
|
+
return /* @__PURE__ */ React43.createElement(ItemIconGradient, { value });
|
|
2518
2600
|
default:
|
|
2519
2601
|
return null;
|
|
2520
2602
|
}
|
|
@@ -2527,62 +2609,76 @@ var extractColorFrom = (prop) => {
|
|
|
2527
2609
|
};
|
|
2528
2610
|
var ItemIconColor = ({ value: prop }) => {
|
|
2529
2611
|
const color = extractColorFrom(prop);
|
|
2530
|
-
return /* @__PURE__ */
|
|
2612
|
+
return /* @__PURE__ */ React43.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
|
|
2531
2613
|
};
|
|
2532
2614
|
var ItemIconImage = ({ value }) => {
|
|
2533
2615
|
const { imageUrl } = useImage(value);
|
|
2534
|
-
return /* @__PURE__ */
|
|
2616
|
+
return /* @__PURE__ */ React43.createElement(
|
|
2617
|
+
CardMedia3,
|
|
2618
|
+
{
|
|
2619
|
+
image: imageUrl,
|
|
2620
|
+
sx: (theme) => ({
|
|
2621
|
+
height: "1em",
|
|
2622
|
+
width: "1em",
|
|
2623
|
+
borderRadius: `${theme.shape.borderRadius / 2}px`,
|
|
2624
|
+
outline: `1px solid ${theme.palette.action.disabled}`
|
|
2625
|
+
})
|
|
2626
|
+
}
|
|
2627
|
+
);
|
|
2535
2628
|
};
|
|
2536
2629
|
var ItemIconGradient = ({ value }) => {
|
|
2537
2630
|
const gradient = getGradientValue(value);
|
|
2538
|
-
return /* @__PURE__ */
|
|
2631
|
+
return /* @__PURE__ */ React43.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
|
|
2539
2632
|
};
|
|
2540
2633
|
var ItemLabel2 = ({ value }) => {
|
|
2541
2634
|
switch (value.$$type) {
|
|
2542
2635
|
case "background-image-overlay":
|
|
2543
|
-
return /* @__PURE__ */
|
|
2636
|
+
return /* @__PURE__ */ React43.createElement(ItemLabelImage, { value });
|
|
2544
2637
|
case "background-color-overlay":
|
|
2545
|
-
return /* @__PURE__ */
|
|
2638
|
+
return /* @__PURE__ */ React43.createElement(ItemLabelColor, { value });
|
|
2546
2639
|
case "background-gradient-overlay":
|
|
2547
|
-
return /* @__PURE__ */
|
|
2640
|
+
return /* @__PURE__ */ React43.createElement(ItemLabelGradient, { value });
|
|
2548
2641
|
default:
|
|
2549
2642
|
return null;
|
|
2550
2643
|
}
|
|
2551
2644
|
};
|
|
2552
2645
|
var ItemLabelColor = ({ value: prop }) => {
|
|
2553
2646
|
const color = extractColorFrom(prop);
|
|
2554
|
-
return /* @__PURE__ */
|
|
2647
|
+
return /* @__PURE__ */ React43.createElement("span", null, color);
|
|
2555
2648
|
};
|
|
2556
2649
|
var ItemLabelImage = ({ value }) => {
|
|
2557
2650
|
const { imageTitle } = useImage(value);
|
|
2558
|
-
return /* @__PURE__ */
|
|
2651
|
+
return /* @__PURE__ */ React43.createElement("span", null, imageTitle);
|
|
2559
2652
|
};
|
|
2560
2653
|
var ItemLabelGradient = ({ value }) => {
|
|
2561
2654
|
if (value.value.type.value === "linear") {
|
|
2562
|
-
return /* @__PURE__ */
|
|
2655
|
+
return /* @__PURE__ */ React43.createElement("span", null, __17("Linear Gradient", "elementor"));
|
|
2563
2656
|
}
|
|
2564
|
-
return /* @__PURE__ */
|
|
2657
|
+
return /* @__PURE__ */ React43.createElement("span", null, __17("Radial Gradient", "elementor"));
|
|
2565
2658
|
};
|
|
2566
2659
|
var ColorOverlayContent = () => {
|
|
2567
2660
|
const propContext = useBoundProp(backgroundColorOverlayPropTypeUtil2);
|
|
2568
|
-
return /* @__PURE__ */
|
|
2661
|
+
return /* @__PURE__ */ React43.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React43.createElement(ColorControl, null)));
|
|
2569
2662
|
};
|
|
2570
2663
|
var ImageOverlayContent = () => {
|
|
2571
2664
|
const propContext = useBoundProp(backgroundImageOverlayPropTypeUtil2);
|
|
2572
|
-
return /* @__PURE__ */
|
|
2665
|
+
return /* @__PURE__ */ React43.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React43.createElement(Grid13, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React43.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React43.createElement(
|
|
2573
2666
|
ImageControl,
|
|
2574
2667
|
{
|
|
2575
2668
|
resolutionLabel: __17("Resolution", "elementor"),
|
|
2576
2669
|
sizes: backgroundResolutionOptions
|
|
2577
2670
|
}
|
|
2578
|
-
)))), /* @__PURE__ */
|
|
2671
|
+
)))), /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React43.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React43.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React43.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React43.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React43.createElement(BackgroundImageOverlayAttachment, null)));
|
|
2579
2672
|
};
|
|
2673
|
+
var StyledUnstableColorIndicator = styled6(UnstableColorIndicator2)(({ theme }) => ({
|
|
2674
|
+
borderRadius: `${theme.shape.borderRadius / 2}px`
|
|
2675
|
+
}));
|
|
2580
2676
|
var useImage = (image) => {
|
|
2581
2677
|
let imageTitle, imageUrl = null;
|
|
2582
2678
|
const imageSrc = image?.value.image.value?.src.value;
|
|
2583
2679
|
const { data: attachment } = useWpMediaAttachment3(imageSrc.id?.value || null);
|
|
2584
2680
|
if (imageSrc.id) {
|
|
2585
|
-
const imageFileTypeExtension = attachment?.
|
|
2681
|
+
const imageFileTypeExtension = getFileExtensionFromFilename(attachment?.filename);
|
|
2586
2682
|
imageTitle = `${attachment?.title}${imageFileTypeExtension}` || null;
|
|
2587
2683
|
imageUrl = attachment?.url || null;
|
|
2588
2684
|
} else if (imageSrc.url) {
|
|
@@ -2591,6 +2687,13 @@ var useImage = (image) => {
|
|
|
2591
2687
|
}
|
|
2592
2688
|
return { imageTitle, imageUrl };
|
|
2593
2689
|
};
|
|
2690
|
+
var getFileExtensionFromFilename = (filename) => {
|
|
2691
|
+
if (!filename) {
|
|
2692
|
+
return "";
|
|
2693
|
+
}
|
|
2694
|
+
const extension = filename.substring(filename.lastIndexOf(".") + 1);
|
|
2695
|
+
return `.${extension}`;
|
|
2696
|
+
};
|
|
2594
2697
|
var getGradientValue = (value) => {
|
|
2595
2698
|
const gradient = value.value;
|
|
2596
2699
|
const stops = gradient.stops.value?.map(({ value: { color, offset } }) => `${color.value} ${offset.value ?? 0}%`)?.join(",");
|
|
@@ -2603,28 +2706,8 @@ var getGradientValue = (value) => {
|
|
|
2603
2706
|
// src/controls/background-control/background-control.tsx
|
|
2604
2707
|
var BackgroundControl = createControl(() => {
|
|
2605
2708
|
const propContext = useBoundProp(backgroundPropTypeUtil);
|
|
2606
|
-
return /* @__PURE__ */
|
|
2709
|
+
return /* @__PURE__ */ React44.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React44.createElement(SectionContent, null, /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React44.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React44.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React44.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlFormLabel, null, __18("Color", "elementor"))), /* @__PURE__ */ React44.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ColorControl, null))))));
|
|
2607
2710
|
});
|
|
2608
|
-
|
|
2609
|
-
// src/control-adornments/control-adornments-context.tsx
|
|
2610
|
-
import * as React42 from "react";
|
|
2611
|
-
import { createContext as createContext5, useContext as useContext5 } from "react";
|
|
2612
|
-
var Context2 = createContext5(null);
|
|
2613
|
-
var ControlAdornmentsProvider = ({ children, items }) => /* @__PURE__ */ React42.createElement(Context2.Provider, { value: { items } }, children);
|
|
2614
|
-
var useControlAdornments = () => {
|
|
2615
|
-
const context = useContext5(Context2);
|
|
2616
|
-
return context?.items ?? [];
|
|
2617
|
-
};
|
|
2618
|
-
|
|
2619
|
-
// src/control-adornments/control-adornments.tsx
|
|
2620
|
-
import * as React43 from "react";
|
|
2621
|
-
function ControlAdornments() {
|
|
2622
|
-
const items = useControlAdornments();
|
|
2623
|
-
if (items?.length === 0) {
|
|
2624
|
-
return null;
|
|
2625
|
-
}
|
|
2626
|
-
return /* @__PURE__ */ React43.createElement(React43.Fragment, null, items.map(({ Adornment, id }) => /* @__PURE__ */ React43.createElement(Adornment, { key: id })));
|
|
2627
|
-
}
|
|
2628
2711
|
export {
|
|
2629
2712
|
BackgroundControl,
|
|
2630
2713
|
BoxShadowRepeaterControl,
|
|
@@ -2632,7 +2715,7 @@ export {
|
|
|
2632
2715
|
ControlActionsProvider,
|
|
2633
2716
|
ControlAdornments,
|
|
2634
2717
|
ControlAdornmentsProvider,
|
|
2635
|
-
|
|
2718
|
+
ControlFormLabel,
|
|
2636
2719
|
ControlReplacementProvider,
|
|
2637
2720
|
ControlToggleButtonGroup,
|
|
2638
2721
|
EqualUnequalSizesControl,
|