@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.
Files changed (30) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/index.d.mts +2 -2
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +373 -290
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +307 -224
  7. package/dist/index.mjs.map +1 -1
  8. package/package.json +3 -3
  9. package/src/components/control-form-label.tsx +6 -0
  10. package/src/components/control-label.tsx +12 -3
  11. package/src/components/repeater.tsx +18 -8
  12. package/src/components/sortable.tsx +6 -6
  13. package/src/components/text-field-inner-selection.tsx +3 -3
  14. package/src/controls/background-control/background-control.tsx +2 -2
  15. package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-attachment.tsx +2 -2
  16. package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx +2 -2
  17. package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-repeat.tsx +2 -2
  18. package/src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx +2 -2
  19. package/src/controls/background-control/background-overlay/background-overlay-repeater-control.tsx +30 -5
  20. package/src/controls/color-control.tsx +1 -1
  21. package/src/controls/equal-unequal-sizes-control.tsx +2 -1
  22. package/src/controls/font-family-control/font-family-control.tsx +2 -0
  23. package/src/controls/gap-control.tsx +3 -2
  24. package/src/controls/image-control.tsx +3 -3
  25. package/src/controls/link-control.tsx +99 -27
  26. package/src/controls/linked-dimensions-control.tsx +7 -6
  27. package/src/controls/stroke-control.tsx +2 -2
  28. package/src/controls/svg-media-control.tsx +2 -2
  29. package/src/index.ts +2 -1
  30. 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 ControlLabel = ({ children }) => {
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(ControlLabel, 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(ControlLabel, null, " ", resolutionLabel, " ")), /* @__PURE__ */ React10.createElement(Grid, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React10.createElement(SelectControl, { options: sizes }))))));
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: "inherit",
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.toUpperCase()
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(ControlLabel, null, label)), /* @__PURE__ */ React17.createElement(Grid2, { item: true, xs: 6 }, children)));
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 React22 from "react";
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 React21 from "react";
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/components/sortable.tsx
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__ */ React20.createElement(List, { sx: { p: 0, my: -0.5, mx: 0 } }, /* @__PURE__ */ React20.createElement(UnstableSortableProvider, { restrictAxis: true, disableDragOverlay: false, variant: "static", ...props }));
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__ */ React20.createElement(
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__ */ React20.createElement(
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__ */ React20.createElement("div", { ...props, role: "button", className: "class-item-sortable-trigger" }, /* @__PURE__ */ React20.createElement(GripVerticalIcon, { fontSize: "tiny" }));
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(-1);
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__ */ React21.createElement(SectionContent, null, /* @__PURE__ */ React21.createElement(Stack5, { direction: "row", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React21.createElement(Typography, { component: "label", variant: "caption", color: "text.secondary" }, label), /* @__PURE__ */ React21.createElement(IconButton, { size: SIZE, onClick: addRepeaterItem, "aria-label": __4("Add item", "elementor") }, /* @__PURE__ */ React21.createElement(PlusIcon, { fontSize: SIZE }))), 0 < uniqueKeys.length && /* @__PURE__ */ React21.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key, index) => {
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__ */ React21.createElement(SortableItem, { id: key, key: `sortable-${key}` }, /* @__PURE__ */ React21.createElement(
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__ */ React21.createElement(itemSettings.Label, { value }),
832
- startIcon: /* @__PURE__ */ React21.createElement(itemSettings.Icon, { value }),
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__ */ React21.createElement(itemSettings.Content, { ...props, value, bind: String(index) })
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__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(
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__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(Tooltip, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React21.createElement(IconButton, { size: SIZE, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React21.createElement(CopyIcon, { fontSize: SIZE }))), /* @__PURE__ */ React21.createElement(Tooltip, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React21.createElement(IconButton, { size: SIZE, onClick: toggleDisableItem, "aria-label": toggleLabel }, disabled ? /* @__PURE__ */ React21.createElement(EyeOffIcon, { fontSize: SIZE }) : /* @__PURE__ */ React21.createElement(EyeIcon, { fontSize: SIZE }))), /* @__PURE__ */ React21.createElement(Tooltip, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React21.createElement(IconButton, { size: SIZE, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React21.createElement(XIcon, { fontSize: SIZE })))),
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__ */ React21.createElement(
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__ */ React21.createElement(Box, null, children({ anchorEl }))
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__ */ React22.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React22.createElement(
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__ */ React22.createElement(UnstableColorIndicator, { size: "inherit", component: "span", value: value.value.color.value });
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__ */ React22.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React22.createElement(Content, { anchorEl }));
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__ */ React22.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React22.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React22.createElement(PopoverGridContainer, null, /* @__PURE__ */ React22.createElement(Control2, { bind: "color", label: __5("Color", "elementor") }, /* @__PURE__ */ React22.createElement(
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__ */ React22.createElement(Control2, { bind: "position", label: __5("Position", "elementor"), sx: { overflow: "hidden" } }, /* @__PURE__ */ React22.createElement(
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__ */ React22.createElement(PopoverGridContainer, null, /* @__PURE__ */ React22.createElement(Control2, { bind: "hOffset", label: __5("Horizontal", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null)), /* @__PURE__ */ React22.createElement(Control2, { bind: "vOffset", label: __5("Vertical", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null))), /* @__PURE__ */ React22.createElement(PopoverGridContainer, null, /* @__PURE__ */ React22.createElement(Control2, { bind: "blur", label: __5("Blur", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null)), /* @__PURE__ */ React22.createElement(Control2, { bind: "spread", label: __5("Spread", "elementor") }, /* @__PURE__ */ React22.createElement(SizeControl, null)))));
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__ */ React22.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React22.createElement(Grid4, { item: true, xs: 6, sx }, /* @__PURE__ */ React22.createElement(Grid4, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React22.createElement(Grid4, { item: true, xs: 12 }, /* @__PURE__ */ React22.createElement(FormLabel2, { size: "tiny" }, label)), /* @__PURE__ */ React22.createElement(Grid4, { item: true, xs: 12 }, children))));
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__ */ React22.createElement("span", { style: { textTransform: "capitalize" } }, positionLabel, ": ", sizes);
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 React24 from "react";
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 React23 from "react";
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__ */ React23.createElement(
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__ */ React23.createElement(Tooltip2, { key: buttonValue, title: label, disableFocusListener: true, placement: "top" }, /* @__PURE__ */ React23.createElement(ToggleButton, { value: buttonValue, "aria-label": label, size, fullWidth }, /* @__PURE__ */ React23.createElement(Content3, { size }))) : /* @__PURE__ */ React23.createElement(
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__ */ React23.createElement(Content3, { size })
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__ */ React24.createElement(
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__ */ React24.createElement(
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 React25 from "react";
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__ */ React25.createElement(ControlActions, null, /* @__PURE__ */ React25.createElement(
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 React26 from "react";
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 Stack6, ToggleButton as ToggleButton2, Tooltip as Tooltip3, usePopupState as usePopupState3 } from "@elementor/ui";
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__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref: controlRef }, /* @__PURE__ */ React26.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, label)), /* @__PURE__ */ React26.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(Stack6, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ React26.createElement(SizeControl, { placeholder: isMixed ? __6("Mixed", "elementor") : void 0 }), /* @__PURE__ */ React26.createElement(Tooltip3, { title: tooltipLabel, placement: "top" }, /* @__PURE__ */ React26.createElement(
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__ */ React26.createElement(
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__ */ React26.createElement(PropProvider, { propType: multiSizePropType, value: getMultiSizeValues(), setValue: setNestedProp }, /* @__PURE__ */ React26.createElement(PopoverContent, { p: 1.5 }, /* @__PURE__ */ React26.createElement(PopoverGridContainer, null, /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[0] }), /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[1] })), /* @__PURE__ */ React26.createElement(PopoverGridContainer, null, /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[2] }), /* @__PURE__ */ React26.createElement(MultiSizeValueControl, { item: items[3] }))))
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__ */ React26.createElement(PropKeyProvider, { bind: item.bind }, /* @__PURE__ */ React26.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(Grid5, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React26.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, item.label)), /* @__PURE__ */ React26.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React26.createElement(SizeControl, { startIcon: item.icon })))));
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 React27 from "react";
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 Stack7, ToggleButton as ToggleButton3, Tooltip as Tooltip4 } from "@elementor/ui";
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__ */ React27.createElement(PropProvider, { propType, value: dimensionsValue, setValue: setDimensionsValue }, /* @__PURE__ */ React27.createElement(Stack7, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(ControlLabel, null, label), /* @__PURE__ */ React27.createElement(Tooltip4, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React27.createElement(
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__ */ React27.createElement(LinkedIcon, { fontSize: "tiny" })
1284
- ))), /* @__PURE__ */ React27.createElement(Stack7, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, __7("Top", "elementor"))), /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
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__ */ React27.createElement(SideTopIcon, { fontSize: "tiny" }),
1324
+ startIcon: /* @__PURE__ */ React30.createElement(SideTopIcon, { fontSize: "tiny" }),
1289
1325
  isLinked,
1290
1326
  extendedValues
1291
1327
  }
1292
- ))), /* @__PURE__ */ React27.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, isSiteRtl ? __7("Left", "elementor") : __7("Right", "elementor"))), /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
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__ */ React27.createElement(SideLeftIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React27.createElement(SideRightIcon, { fontSize: "tiny" }),
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__ */ React27.createElement(Stack7, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, __7("Bottom", "elementor"))), /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
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__ */ React27.createElement(SideBottomIcon, { fontSize: "tiny" }),
1340
+ startIcon: /* @__PURE__ */ React30.createElement(SideBottomIcon, { fontSize: "tiny" }),
1305
1341
  isLinked,
1306
1342
  extendedValues
1307
1343
  }
1308
- ))), /* @__PURE__ */ React27.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, isSiteRtl ? __7("Right", "elementor") : __7("Left", "elementor"))), /* @__PURE__ */ React27.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React27.createElement(
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__ */ React27.createElement(SideRightIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React27.createElement(SideLeftIcon, { fontSize: "tiny" }),
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__ */ React27.createElement(SizeControl, { startIcon, extendedValues });
1362
+ return /* @__PURE__ */ React30.createElement(SizeControl, { startIcon, extendedValues });
1327
1363
  }
1328
- return /* @__PURE__ */ React27.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React27.createElement(SizeControl, { startIcon, extendedValues }));
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 React28 from "react";
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 Stack8,
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__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(
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__ */ React28.createElement(ChevronDownIcon, { fontSize: "tiny" }),
1435
+ endIcon: /* @__PURE__ */ React31.createElement(ChevronDownIcon, { fontSize: "tiny" }),
1400
1436
  ...bindTrigger3(popoverState),
1401
1437
  fullWidth: true
1402
1438
  }
1403
- ), /* @__PURE__ */ React28.createElement(
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__ */ React28.createElement(Stack8, null, /* @__PURE__ */ React28.createElement(Stack8, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React28.createElement(TextIcon, { fontSize: SIZE2, sx: { mr: 0.5 } }), /* @__PURE__ */ React28.createElement(Typography2, { variant: "subtitle2" }, __8("Font Family", "elementor")), /* @__PURE__ */ React28.createElement(IconButton2, { size: SIZE2, sx: { ml: "auto" }, onClick: handleClose }, /* @__PURE__ */ React28.createElement(XIcon2, { fontSize: SIZE2 }))), /* @__PURE__ */ React28.createElement(Box2, { px: 1.5, pb: 1 }, /* @__PURE__ */ React28.createElement(
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__ */ React28.createElement(InputAdornment3, { position: "start" }, /* @__PURE__ */ React28.createElement(SearchIcon, { fontSize: SIZE2 }))
1457
+ startAdornment: /* @__PURE__ */ React31.createElement(InputAdornment3, { position: "start" }, /* @__PURE__ */ React31.createElement(SearchIcon, { fontSize: SIZE2 }))
1422
1458
  }
1423
1459
  }
1424
- )), /* @__PURE__ */ React28.createElement(Divider2, null), filteredFontFamilies.length > 0 ? /* @__PURE__ */ React28.createElement(
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__ */ React28.createElement(Box2, { sx: { overflowY: "auto", height: 260, width: 220 } }, /* @__PURE__ */ React28.createElement(Stack8, { alignItems: "center", p: 2.5, gap: 1.5, overflow: "hidden" }, /* @__PURE__ */ React28.createElement(TextIcon, { fontSize: "large" }), /* @__PURE__ */ React28.createElement(Box2, { sx: { maxWidth: 160, overflow: "hidden" } }, /* @__PURE__ */ React28.createElement(Typography2, { align: "center", variant: "subtitle2", color: "text.secondary" }, __8("Sorry, nothing matched", "elementor")), /* @__PURE__ */ React28.createElement(
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__ */ React28.createElement("span", null, "\u201C"),
1444
- /* @__PURE__ */ React28.createElement(
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__ */ React28.createElement("span", null, "\u201D.")
1452
- )), /* @__PURE__ */ React28.createElement(Typography2, { align: "center", variant: "caption", color: "text.secondary" }, __8("Try something else.", "elementor"), /* @__PURE__ */ React28.createElement(
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__ */ React28.createElement(
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__ */ React28.createElement(
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__ */ React28.createElement(
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__ */ React28.createElement(
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 React29 from "react";
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__ */ React29.createElement(ControlActions, null, /* @__PURE__ */ React29.createElement(
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 React31 from "react";
1653
+ import * as React34 from "react";
1616
1654
  import { useMemo, useState as useState4 } from "react";
1617
- import { getAncestorWithAnchorTag, getDescendantWithAnchorTag } from "@elementor/editor-elements";
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 Stack9, Switch } from "@elementor/ui";
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 React30 from "react";
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__ */ React30.createElement(
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__ */ React30.createElement(Box3, { component: "li", ...optionProps, key: optionProps.id }, findMatchingOption(options, optionId)?.label ?? optionId),
1678
- renderInput: (params) => /* @__PURE__ */ React30.createElement(
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__ */ React30.createElement(
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__ */ React30.createElement(ClearButton, { params, allowClear, handleChange })
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__ */ React30.createElement(InputAdornment4, { position: "end" }, allowClear && /* @__PURE__ */ React30.createElement(IconButton3, { size: params.size, onClick: () => handleChange(null), sx: { cursor: "pointer" } }, /* @__PURE__ */ React30.createElement(XIcon3, { fontSize: params.size })));
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 [isEnabled, setIsEnabled] = useState4(!!value);
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
- const shouldRestrict = getAncestorWithAnchorTag(elementId) || getDescendantWithAnchorTag(elementId);
1762
- if (shouldRestrict && !isEnabled) {
1806
+ setLinkInLinkRestriction(getLinkInLinkRestriction(elementId));
1807
+ if (linkInLinkRestriction.shouldRestrict && !isActive) {
1763
1808
  return;
1764
1809
  }
1765
- setIsEnabled((prevState) => !prevState);
1766
- setValue(isEnabled ? null : linkSessionValue?.value ?? null);
1767
- setLinkSessionValue({ value, meta: { isEnabled: !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__ */ React31.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React31.createElement(Stack9, { gap: 1.5 }, /* @__PURE__ */ React31.createElement(Divider3, null), /* @__PURE__ */ React31.createElement(
1808
- Stack9,
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__ */ React31.createElement(ControlLabel, null, __9("Link", "elementor")),
1817
- /* @__PURE__ */ React31.createElement(
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
- enabled: isEnabled,
1865
+ disabled: shouldDisableAddingLink,
1866
+ active: isActive,
1821
1867
  onIconClick: onEnabledChange,
1822
1868
  label: __9("Toggle link", "elementor")
1823
1869
  }
1824
- )
1825
- ), /* @__PURE__ */ React31.createElement(Collapse, { in: isEnabled, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React31.createElement(Stack9, { gap: 1.5 }, /* @__PURE__ */ React31.createElement(PropKeyProvider, { bind: "destination" }, /* @__PURE__ */ React31.createElement(ControlActions, null, /* @__PURE__ */ React31.createElement(
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__ */ React31.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React31.createElement(SwitchControl, null))))));
1882
+ ))), /* @__PURE__ */ React34.createElement(PropKeyProvider, { bind: "isTargetBlank" }, /* @__PURE__ */ React34.createElement(SwitchControl, { disabled: !value }))))));
1837
1883
  });
1838
- var ToggleIconControl = ({ enabled, onIconClick, label }) => {
1839
- return /* @__PURE__ */ React31.createElement(IconButton4, { size: SIZE3, onClick: onIconClick, "aria-label": label }, enabled ? /* @__PURE__ */ React31.createElement(MinusIcon, { fontSize: SIZE3 }) : /* @__PURE__ */ React31.createElement(PlusIcon2, { fontSize: SIZE3 }));
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
- return /* @__PURE__ */ React31.createElement(Grid7, { container: true, alignItems: "center", flexWrap: "nowrap", justifyContent: "space-between" }, /* @__PURE__ */ React31.createElement(Grid7, { item: true }, /* @__PURE__ */ React31.createElement(ControlLabel, null, __9("Open in a new tab", "elementor"))), /* @__PURE__ */ React31.createElement(Grid7, { item: true }, /* @__PURE__ */ React31.createElement(Switch, { checked: value, onClick })));
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 React32 from "react";
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 Stack10, ToggleButton as ToggleButton4, Tooltip as Tooltip5 } from "@elementor/ui";
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__ */ React32.createElement(PropProvider, { propType, value: directionValue, setValue: setDirectionValue }, /* @__PURE__ */ React32.createElement(Stack10, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(ControlLabel, null, label), /* @__PURE__ */ React32.createElement(Tooltip5, { title: isLinked ? unlinkedLabel : linkedLabel, placement: "top" }, /* @__PURE__ */ React32.createElement(
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__ */ React32.createElement(LinkedIcon, { fontSize: "tiny" })
1917
- ))), /* @__PURE__ */ React32.createElement(Stack10, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid8, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React32.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(ControlLabel, null, __10("Column", "elementor"))), /* @__PURE__ */ React32.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(Control4, { bind: "column", isLinked }))), /* @__PURE__ */ React32.createElement(Grid8, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React32.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(ControlLabel, null, __10("Row", "elementor"))), /* @__PURE__ */ React32.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(Control4, { bind: "row", isLinked })))));
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__ */ React32.createElement(SizeControl, null);
2003
+ return /* @__PURE__ */ React35.createElement(SizeControl, null);
1922
2004
  }
1923
- return /* @__PURE__ */ React32.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React32.createElement(SizeControl, null));
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 React34 from "react";
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 Stack11, styled as styled5 } from "@elementor/ui";
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 React33 from "react";
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__ */ React33.createElement(AdminDialog, { ...dialogProps }) : /* @__PURE__ */ React33.createElement(NonAdminDialog, { ...dialogProps });
2071
+ return canManageOptions ? /* @__PURE__ */ React36.createElement(AdminDialog, { ...dialogProps }) : /* @__PURE__ */ React36.createElement(NonAdminDialog, { ...dialogProps });
1990
2072
  };
1991
- var AdminDialog = ({ open, onClose, handleEnable, isPending, isError }) => /* @__PURE__ */ React33.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React33.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React33.createElement(DialogTitle, null, ADMIN_TITLE_TEXT)), /* @__PURE__ */ React33.createElement(Divider4, null), /* @__PURE__ */ React33.createElement(DialogContent, null, /* @__PURE__ */ React33.createElement(DialogContentText, null, isError ? /* @__PURE__ */ React33.createElement(React33.Fragment, null, ADMIN_FAILED_CONTENT_TEXT_PT1, " ", /* @__PURE__ */ React33.createElement("br", null), " ", ADMIN_FAILED_CONTENT_TEXT_PT2) : ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React33.createElement(DialogActions, null, /* @__PURE__ */ React33.createElement(Button3, { size: "medium", color: "secondary", onClick: () => onClose(false) }, __11("Cancel", "elementor")), /* @__PURE__ */ React33.createElement(
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__ */ React33.createElement(CircularProgress2, { size: 24 }) : __11("Enable", "elementor")
2082
+ isPending ? /* @__PURE__ */ React36.createElement(CircularProgress2, { size: 24 }) : __11("Enable", "elementor")
2001
2083
  )));
2002
- var NonAdminDialog = ({ open, onClose }) => /* @__PURE__ */ React33.createElement(Dialog, { open, maxWidth: "sm", onClose: () => onClose(false) }, /* @__PURE__ */ React33.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React33.createElement(DialogTitle, null, NON_ADMIN_TITLE_TEXT)), /* @__PURE__ */ React33.createElement(Divider4, null), /* @__PURE__ */ React33.createElement(DialogContent, null, /* @__PURE__ */ React33.createElement(DialogContentText, null, NON_ADMIN_CONTENT_TEXT)), /* @__PURE__ */ React33.createElement(DialogActions, null, /* @__PURE__ */ React33.createElement(Button3, { size: "medium", onClick: () => onClose(false), variant: "contained", color: "primary" }, __11("Got it", "elementor"))));
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(Stack11)`
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__ */ React34.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React34.createElement(EnableUnfilteredModal, { open: unfilteredModalOpenState, onClose: onCloseUnfilteredModal }), /* @__PURE__ */ React34.createElement(ControlLabel, null, " ", __12("SVG", "elementor"), " "), /* @__PURE__ */ React34.createElement(ControlActions, null, /* @__PURE__ */ React34.createElement(StyledCard, { variant: "outlined" }, /* @__PURE__ */ React34.createElement(StyledCardMediaContainer, null, isFetching ? /* @__PURE__ */ React34.createElement(CircularProgress3, { role: "progressbar" }) : /* @__PURE__ */ React34.createElement(
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__ */ React34.createElement(
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__ */ React34.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React34.createElement(
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__ */ React34.createElement(
2171
+ ), /* @__PURE__ */ React37.createElement(
2090
2172
  Button4,
2091
2173
  {
2092
2174
  size: "tiny",
2093
2175
  variant: "text",
2094
2176
  color: "inherit",
2095
- startIcon: /* @__PURE__ */ React34.createElement(UploadIcon2, null),
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 React41 from "react";
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 React40 from "react";
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 Box4, CardMedia as CardMedia3, Grid as Grid13, Tab, TabPanel, Tabs, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
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 React35 from "react";
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__ */ React35.createElement(ControlActions, null, /* @__PURE__ */ React35.createElement(
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 React36 from "react";
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__ */ React36.createElement(PinIcon, { fontSize: size }),
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__ */ React36.createElement(PinnedOffIcon, { fontSize: size }),
2294
+ renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(PinnedOffIcon, { fontSize: size }),
2213
2295
  showTooltip: true
2214
2296
  }
2215
2297
  ];
2216
2298
  var BackgroundImageOverlayAttachment = () => {
2217
- return /* @__PURE__ */ React36.createElement(PopoverGridContainer, null, /* @__PURE__ */ React36.createElement(Grid9, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(ControlLabel, null, __13("Attachment", "elementor"))), /* @__PURE__ */ React36.createElement(Grid9, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React36.createElement(ToggleControl, { options: attachmentControlOptions })));
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 React37 from "react";
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__ */ React37.createElement(Grid10, { container: true, spacing: 1.5 }, /* @__PURE__ */ React37.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(PopoverGridContainer, null, /* @__PURE__ */ React37.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(ControlLabel, null, __14("Position", "elementor"))), /* @__PURE__ */ React37.createElement(Grid10, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end", overflow: "hidden" } }, /* @__PURE__ */ React37.createElement(
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__ */ React37.createElement(MenuListItem3, { key: value, value: value ?? "" }, label))
2260
- )))), isCustom ? /* @__PURE__ */ React37.createElement(PropProvider, { ...backgroundImageOffsetContext }, /* @__PURE__ */ React37.createElement(Grid10, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(Grid10, { container: true, spacing: 1.5 }, /* @__PURE__ */ React37.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "x" }, /* @__PURE__ */ React37.createElement(SizeControl, { startIcon: /* @__PURE__ */ React37.createElement(LetterXIcon, { fontSize: "tiny" }) }))), /* @__PURE__ */ React37.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(PropKeyProvider, { bind: "y" }, /* @__PURE__ */ React37.createElement(SizeControl, { startIcon: /* @__PURE__ */ React37.createElement(LetterYIcon, { fontSize: "tiny" }) })))))) : null);
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 React38 from "react";
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__ */ React38.createElement(GridDotsIcon, { fontSize: size }),
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__ */ React38.createElement(DotsHorizontalIcon, { fontSize: size }),
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__ */ React38.createElement(DotsVerticalIcon, { fontSize: size }),
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__ */ React38.createElement(XIcon4, { fontSize: size }),
2372
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(XIcon4, { fontSize: size }),
2291
2373
  showTooltip: true
2292
2374
  }
2293
2375
  ];
2294
2376
  var BackgroundImageOverlayRepeat = () => {
2295
- return /* @__PURE__ */ React38.createElement(PopoverGridContainer, null, /* @__PURE__ */ React38.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(ControlLabel, null, __15("Repeat", "elementor"))), /* @__PURE__ */ React38.createElement(Grid11, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React38.createElement(ToggleControl, { options: repeatControlOptions })));
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 React39 from "react";
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__ */ React39.createElement(LetterAIcon, { fontSize: size }),
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__ */ React39.createElement(ArrowsMaximizeIcon, { fontSize: size }),
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__ */ React39.createElement(ArrowBarBothIcon, { fontSize: size }),
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__ */ React39.createElement(PencilIcon, { fontSize: size }),
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__ */ React39.createElement(Grid12, { container: true, spacing: 1.5 }, /* @__PURE__ */ React39.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(PopoverGridContainer, null, /* @__PURE__ */ React39.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel, null, __16("Size", "elementor"))), /* @__PURE__ */ React39.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React39.createElement(
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__ */ React39.createElement(PropProvider, { ...backgroundImageScaleContext }, /* @__PURE__ */ React39.createElement(Grid12, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(PopoverGridContainer, null, /* @__PURE__ */ React39.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(PropKeyProvider, { bind: "width" }, /* @__PURE__ */ React39.createElement(
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__ */ React39.createElement(ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
2441
+ startIcon: /* @__PURE__ */ React42.createElement(ArrowsMoveHorizontalIcon, { fontSize: "tiny" }),
2360
2442
  extendedValues: ["auto"]
2361
2443
  }
2362
- ))), /* @__PURE__ */ React39.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(PropKeyProvider, { bind: "height" }, /* @__PURE__ */ React39.createElement(
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__ */ React39.createElement(ArrowsMoveVerticalIcon, { fontSize: "tiny" }),
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__ */ React40.createElement(PropProvider, { propType, value: overlayValues, setValue }, /* @__PURE__ */ React40.createElement(
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__ */ React40.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React40.createElement(Content2, null));
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__ */ React40.createElement(Box4, { sx: { width: "100%" } }, /* @__PURE__ */ React40.createElement(Box4, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React40.createElement(
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__ */ React40.createElement(Tab, { label: __17("Image", "elementor"), ...getTabProps("image") }),
2506
- /* @__PURE__ */ React40.createElement(Tab, { label: __17("Gradient", "elementor"), ...getTabProps("gradient") }),
2507
- /* @__PURE__ */ React40.createElement(Tab, { label: __17("Color", "elementor"), ...getTabProps("color") })
2508
- )), /* @__PURE__ */ React40.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("image") }, /* @__PURE__ */ React40.createElement(PopoverContent, null, /* @__PURE__ */ React40.createElement(ImageOverlayContent, null))), /* @__PURE__ */ React40.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("gradient") }, /* @__PURE__ */ React40.createElement(BackgroundGradientColorControl, null)), /* @__PURE__ */ React40.createElement(TabPanel, { sx: { p: 1.5 }, ...getTabPanelProps("color") }, /* @__PURE__ */ React40.createElement(PopoverContent, null, /* @__PURE__ */ React40.createElement(ColorOverlayContent, null))));
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__ */ React40.createElement(ItemIconImage, { value });
2595
+ return /* @__PURE__ */ React43.createElement(ItemIconImage, { value });
2514
2596
  case "background-color-overlay":
2515
- return /* @__PURE__ */ React40.createElement(ItemIconColor, { value });
2597
+ return /* @__PURE__ */ React43.createElement(ItemIconColor, { value });
2516
2598
  case "background-gradient-overlay":
2517
- return /* @__PURE__ */ React40.createElement(ItemIconGradient, { value });
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__ */ React40.createElement(UnstableColorIndicator2, { size: "inherit", component: "span", value: color });
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__ */ React40.createElement(CardMedia3, { image: imageUrl, sx: { height: 13, width: 13, borderRadius: "4px" } });
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__ */ React40.createElement(UnstableColorIndicator2, { size: "inherit", component: "span", value: gradient });
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__ */ React40.createElement(ItemLabelImage, { value });
2636
+ return /* @__PURE__ */ React43.createElement(ItemLabelImage, { value });
2544
2637
  case "background-color-overlay":
2545
- return /* @__PURE__ */ React40.createElement(ItemLabelColor, { value });
2638
+ return /* @__PURE__ */ React43.createElement(ItemLabelColor, { value });
2546
2639
  case "background-gradient-overlay":
2547
- return /* @__PURE__ */ React40.createElement(ItemLabelGradient, { value });
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__ */ React40.createElement("span", null, color);
2647
+ return /* @__PURE__ */ React43.createElement("span", null, color);
2555
2648
  };
2556
2649
  var ItemLabelImage = ({ value }) => {
2557
2650
  const { imageTitle } = useImage(value);
2558
- return /* @__PURE__ */ React40.createElement("span", null, imageTitle);
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__ */ React40.createElement("span", null, __17("Linear Gradient", "elementor"));
2655
+ return /* @__PURE__ */ React43.createElement("span", null, __17("Linear Gradient", "elementor"));
2563
2656
  }
2564
- return /* @__PURE__ */ React40.createElement("span", null, __17("Radial Gradient", "elementor"));
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__ */ React40.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React40.createElement(ColorControl, null)));
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__ */ React40.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React40.createElement(Grid13, { container: true, spacing: 1, alignItems: "center" }, /* @__PURE__ */ React40.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React40.createElement(
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__ */ React40.createElement(PropKeyProvider, { bind: "position" }, /* @__PURE__ */ React40.createElement(BackgroundImageOverlayPosition, null)), /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "repeat" }, /* @__PURE__ */ React40.createElement(BackgroundImageOverlayRepeat, null)), /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "size" }, /* @__PURE__ */ React40.createElement(BackgroundImageOverlaySize, null)), /* @__PURE__ */ React40.createElement(PropKeyProvider, { bind: "attachment" }, /* @__PURE__ */ React40.createElement(BackgroundImageOverlayAttachment, null)));
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?.subtype ? `.${attachment.subtype}` : "";
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__ */ React41.createElement(PropProvider, { ...propContext }, /* @__PURE__ */ React41.createElement(SectionContent, null, /* @__PURE__ */ React41.createElement(PropKeyProvider, { bind: "background-overlay" }, /* @__PURE__ */ React41.createElement(BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React41.createElement(PropKeyProvider, { bind: "color" }, /* @__PURE__ */ React41.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Color", "elementor"))), /* @__PURE__ */ React41.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ColorControl, null))))));
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
- ControlLabel,
2718
+ ControlFormLabel,
2636
2719
  ControlReplacementProvider,
2637
2720
  ControlToggleButtonGroup,
2638
2721
  EqualUnequalSizesControl,